Eclipse CDT:重新构建依赖项目

5
我正在使用在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 ****
1个回答

5
如果你习惯了最新版本的MS Visual Studio,那么你应该清理一下桌子上的空间,并用一个巨大的“X”标记出来——这很可能是你在使用eclipse/CDT时会因为沮丧而拳打甚至撞头的地方。
Eclipse有自己的依赖机制,但几乎什么也不做,但幸运的是,CDT模块有自己的依赖机制,试图做你想要的事情。要设置项目依赖关系,请转到:
Project-->Properties-->C/C++ General-->Paths and Symbols-->References

所以在你的例子中,您需要前往“libxxx_tests”的项目属性,并选择“libxxx.a”作为依赖项。

请注意,您还可以使用此页面设置库的顺序,这可能是一个重要的步骤,取决于项目的复杂性。


1
嗨,这个不起作用。我对这个问题早就感到沮丧了。我在这里问过:https://dev59.com/s2kw5IYBdhLWcg3wdKMv,并在这里发布了Eclipse错误:https://bugs.eclipse.org/bugs/show_bug.cgi?id=375800 - haelix
可以在 Code Composer Studio 5.5.0 上使用,据我所知它是基于 Eclipse 3.8.1 和 CDT 8.1.1。 - Mark Ch

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接