私は非常に簡単なことを言っています。私はmain.cとinput_error.hというヘッダファイルを持っています。私の非常にシンプルなメークファイルが動作しないのはなぜですか?
main.o : main.c input_error.h
gcc -c main.c
"make"コマンドを実行するとgcc -c main.cが実行されますが、main.cファイルに行った変更は更新されません。手動で "gcc main.c"を入力すると正常に動作します。
編集:私は別のルールを追加する必要があるように思えるが、私はそれがあなたのメイクファイルのみ.oファイルを作成します現時点で
'gcc -c main.cが実行されましたが、変更は更新されていません。それ無理。コマンドが実行されると、その時点で '.c'ファイルから最新の' .o'ファイルが生成されます。あなたは何かを誤解しています。それが「どのような変更も更新していない」と考えているかどうかを明確にしてください。最終的な実行可能ファイルが生成されないということは、そのルールが中間オブジェクトのみを構築し、リンクしないためです。あなたは別のリンクルールがある場合は、それを示してください。 – kaylum
'gcc main.c'を手動で実行することは、makeファイル内のルールコマンド' gcc -c main.c 'と同じではありません。だからそれは匹敵しない。 – kaylum
はいこれは完全なメークファイルです。 main.cに移動して 'printf( "Hello World \ n"を追加してからmakeを実行すると、それは表示されません) – Sidward