2

私は走っています

Eclipse Juno Service Release 2 ビルド ID: 20130225-0426 (この CDT構成を使用)

そしてこのOS:

(の切り捨てられた出力uname -a):Linux 3.2.0-51-generic #77-Ubuntu SMP x86_64 x86_64 x86_64 GNU/Linux

次のように HelloWorld C++ プロジェクトを作成します。

  • ファイル -> 新規 -> C++ プロジェクト
  • プロジェクトの種類: 実行可能な空のプロジェクト
  • ツールチェーン: Cross GCC
  • 構成: デバッグおよびリリースのチェック済み

Main.cpp次に、 Hello World コードを含むC++ ソース ファイルを作成します。

その後、ハンマー アイコンを使用してコンパイルできます。リリース モードでコンパイルすることを選択します。プログラムは (eclipse 内またはコマンド ラインで) 正常に実行され、"hello" が出力されます。「hello there」を出力するようにコードを変更すると、ハンマーで再コンパイルでき、プログラムは引き続き正常に実行され、「hello there」が出力されます。

ただし、コードを変更して "hello there you" を出力し、Release ディレクトリ ( /home/user/workspace/HelloWorld/Release) に移動して make と入力すると、次のメッセージが表示されますmake: Nothing to be done for 'Main.d'

Release ディレクトリに makefile というファイルがありますが、通常の makefile のように動作していません。この makefile は、コードに変更があり、make と入力すると、コードが実際に再コンパイルされるようになっていると思います。make cleanの後に を入力するmakeと、コードが再コンパイルされますが、これは大規模なプロジェクトでは非効率的です。

Eclipse によって生成された makefile がこのように動作する理由を知っていますか? どうもありがとう。

4

1 に答える 1

3

$makeの代わりに$ make allを試し てみてください。

于 2013-10-23T20:52:27.660 に答える