考えられる原因:コマンド行がTABで始まっていない.
$ make Makefile:4: *** missing separator. Stop.
考えられる原因:マクロ定義を忘れている.
$ make o hello hello.pas make: o: Command not found make: [hello] Error 127 (ignored)
これはどういうことかというと,
Makefile
内に,
$(PC) -o $@ $<
のようにマクロを使ったコマンド行が書いてある場合に,
マクロPC
の定義をし忘れた結果,$(PC)
が空文字列になり,
このコマンド行がマクロ展開により-o $@ $<
になっている.
ここで,コマンド行の先頭のマイナス記号(-
)は,
このコマンドが失敗におわってもmakeを続けるという意味のプレフィックスになることを考慮すると,
このコマンド行は,o hello hello.pas
となる.
したがって,makeはo
というコマンドを呼び出してしまい,
このコマンドが存在しないため,最終的に“Command not found”となる.
考えられる原因:.SUFFIXES:
をかき忘れている.または,つづりが間違っている.
$ make make: *** No rule to make target `hello', needed by `all'. Stop.
このメッセージはいろんな理由ででてくるので,これだけ見てもなかなか原因がわからない.
しかし,盲点になりやすいという意味で,.SUFFIXES
の指定順などを確認してみるのは悪くないと思う.