1

「アラート センター」と呼ばれる小さなプログラムを作成しています。使用している主なクラス/オブジェクトは、ポイント、ライン、およびビルディングです。私の Makefile の内容は次のとおりです。

building.o: building.h line.h point.h building.cpp
    g++ -c building.cpp
line.o: line.h point.h line.cpp
    g++ -c line.cpp
point.o: point.h point.cpp
    g++ -c point.cpp
alert_center: point.o line.o building.o
    g++ point.o line.o building.o runner.cpp -o alert_center

問題は、リストされている最初のファイルのみが考慮されることです。たとえば、 を変更line.cppしてから を実行するmakeと、何も起こらず、building.o変更されていないと表示されます。最初のルールを作成した場合にのみ、変更がコンパイルされline.oます。なぜこれが起こっているのか誰にも分かりますか?

4

1 に答える 1

4

デフォルトalert_centerのターゲットにします。(これ.defaultを参照)を使用して明示的に行うか、単に最初のターゲットとしてリストしてデフォルトにすることができます。

複数のターゲットの場合、疑似ターゲットに名前allを付けてデフォルトにするのが一般的です。make の推奨ターゲットについては、こちらを参照してください。

于 2013-06-29T00:33:56.623 に答える