2011-07-25 4 views
4

、このライブラリのためのユニットテストを使用してプロジェクトを再構築。
明らかに、2番目のプロジェクトは最初のプロジェクトに依存します。
両方のプロジェクトが外部ビルダーを使用します日食CDT:私は日食インディゴ+ CDTは、それがライブラリのためのプロジェクトで作られたのLinux</p> <p>上で実行されているとC++のプロジェクトに取り組んでいる依存プロジェクト

ただし、最初のプロジェクトのヘッダーを変更すると、テストプロジェクトが再構築されません。そして、私はそれをすることはできません...ヘッダーがテストプロジェクトに含まれていても、2番目のプロジェクトを再リンクするだけです。私はしばしば図書館で働いている間に作業ビルドを持っているので、これは非常に迷惑です。そして、ある時点で、私は完全な再構築を行い、30分前に行ったものに、エラーのロードを見ます! CDTグローバル・ビルド・コンソールの

出力例:

**** Build of configuration Debug for project libxxx **** 

make -j all 
Building file: ../foo.cpp 
Invoking: GCC C++ Compiler 
ccache g++ -I"/home/foke/workspaces/cpp/libxxx/include" -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"foo.d" -MT"foo.d" -o "foo.o" "../foo.cpp" 
Finished building: ../foo.cpp 

Building target: libxxx.a 
Invoking: GCC Archiver 
ar -r "libxxx.a" ./foo.o ./src/yyy.o ./src/detail/zzz.o 
ar: creating libxxx.a 
Finished building target: libxxx.a 


**** Build Finished **** 

**** Build of configuration Debug for project libxxx_tests **** 

make -k -j all 
Building target: libxxx_tests 
Invoking: Cross G++ Linker 
g++ -L"/home/foke/workspaces/cpp/libxxx/Debug" -o "libxxx_tests" ./main.o ./aaa.o ./tests/bbb.o ./tests/ccc.o ./tests/ddd.o -lboost_unit_test_framework -lxxx 
Finished building target: libxxx_tests 


**** Build Finished **** 

答えて

4

あなたはMSのVisual Studioの最新バージョンに慣れているなら、あなたはあなたの机の上のスペースをオフにクリアし、巨人とそれをマークする必要がありますX ' - これは必然的にeclipse/CDTを使用しているときに、あなたの拳と、おそらくあなたの頭が欲求不満の声を上げる場所です。

Eclipseにはほとんど何もしていない独自の依存性メカニズムがありますが、幸いにもCDTモジュールにはあなたが望むことをしようとする独自の依存メカニズムがあります。だからあなたの例では、あなたが「libxxx_tests」のために、プロジェクトのプロパティに行くだろうし、依存関係として「libxxx.a」を選択

Project-->Properties-->C/C++ General-->Paths and Symbols-->References 

:プロジェクトの依存関係を設定するにはにアクセスしてください。

このページを使用してライブラリの順序を設定することもできます。これは、プロジェクトの複雑さに応じて重要なステップです。

+1

こんにちは、これは動作しません。私はずっと前からこの問題に苛立っています。私はここでそれを尋ねました:http://stackoverflow.com/questions/9884827/eclipse-cdt-not-building-project-on-header-file-changeそしてここにこのバグを投稿しました:https://bugs.eclipse.org /bugs/show_bug.cgi?id=375800 – haelix

+0

は、Code Composer Studio 5.5.0で動作します。これは、Eclipse 3.8.1とCDT 8.1.1に基づいています。 –

関連する問題