コマンドラインにすでにファイルのリストがあるにもかかわらず、「Makefile」に依存関係の行が必要な理由は疑問に思います。例えば、
こんにちは: main.o こんにちは.o
gcc -o main.o hello.o
gccコマンドにはすでにmain.oとhello.oが含まれています。依存性行を作成するのは非効率的です。
答え1
はい、しかし必要なのは依存関係ではなく構築されたルールです。make
結局のところ、依存関係はうまくいくでしょう。ビルドルールも真剣に間違っています(main.o
buildの代わりに上書きされますhello
)。
暗黙的なルールを使用すると、次のように短縮できます。
hello: main.o hello.o
または依存関係に加えて明示的なmakeルールが必要な場合:
hello: main.o hello.o
$(CC) -o $@ $<