我正在使用在Linux上运行的Eclipse Indigo + CDT开发C++项目。它由库项目和针对该库进行单元测试的项目组成。显然,第二个项目依赖于第一个项目。 两个项目都使用外部构建器。
但是,当我修改第一个项目的头文件时,它不会重建测试项目。而且我无法让它重新构建。它只会重新链接第二个项目,即使头文件已包含在测试项目中。这很烦人,因为我经常在开发库时有工作构建,然后在某些时候做完整的重建,就会看到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 ****