The Quick Gold Fox

技術系メモブログ

CygwinにCaffeine Monkeyがmakeできない時

本エントリは,CygwinでCaffeine Monkeyをmakeするときに以下のようなエラーが表示された時の対処法です.
ちなみに,"Lisa Kitsune"は,私のWindowsのユーザ名=Cygwinでのユーザ名となります.

Lisa Kitsune@SIBERIA ~/js/src
$ make -f Makefile.ref OS_ARCH=Linux
cat: ../../dist/Linux_All_DBG.OBJ/nspr/Version: No such file or directory
cd editline; make -f Makefile.ref all
make[1]: ディレクトリ '/home/Lisa Kitsune/js/src/editline' に入ります
gcc -o Linux_All_DBG.OBJ/editline.o -c -Wall -Wno-format -DXP_UNIX -g -DXP_UNIX -DSVR4 -DSYSV -D_BSD_SOURCE -DPOSIX_SOURCE -DHAVE_LOCALTIME_R -DX86_LINUX  -DDEBUG -DDEBUG_Lisa Kitsune  -DJSFILE  -DANSI_ARROWS -DHAVE_TCGETATTR -DHIDE -DUSE_DIRENT -DSYS_UNIX -DHAVE_STDLIB -DUNIQUE_HISTORY editline.c
gcc: エラー: Kitsune: No such file or directory
Makefile.ref:118: ターゲット 'Linux_All_DBG.OBJ/editline.o' のレシピで失敗しました
make[1]: *** [Linux_All_DBG.OBJ/editline.o] エラー 1
make[1]: ディレクトリ '/home/Lisa Kitsune/js/src/editline' から出ます
rules.mk:65: ターゲット 'all' のレシピで失敗しました
make: *** [all] エラー 2

これから導入するぞという方は,私が投稿したこのエントリを参照して下さい.


さて,このエントリを閲覧されている方は,「ちゃんとオプション指定してるのにmakeできねぇ!とりあえずググるか!」という方だと思います.
結論から言いますと,Windowsユーザ名にスペースが存在すると,正常にmakeできないことが原因です.

私の環境では,前述のとおりWindowsユーザ名が"Lisa Kitsune"となっており,Cygwinはこのユーザ名を継承しています.
ユーザ名の"Lisa"と"Kitsune"の間に半角スペースが入っており,これが悪さをしているようです.

エラーをよく見てみましょう.

gcc: エラー: Kitsune: No such file or directory

半角スペースの部分でコマンドが途切れているような感じですね.
そのせいで正常にmakeできていないようです.

手っ取り早い対策としては,

  1. Cygwinのユーザ名を変更する.
  2. Windowsのユーザ名を変更する.

のどちらかになるかと思います.

Cygwinのユーザ名を変更するためには,/etc/passwdを編集すると良い,というサイト様がありましたが,
私の環境ではこのファイルが見つからなかったため,Windowsユーザを新しく作成して対応しました.

本エントリが何かのお役に立てれば幸いです.