我使用的是Eclipse Platform 3.7.2和CDT 8.0.2。在进行“Build All”时,来自其他工作区项目的标头文件不被视为依赖项,因此没有重新构建。我的应用程序中有一个helloworld应用程序和一个静态库项目。在“Project Properties->c/c++general->Paths and Symbols->References”选项卡中,将静态库设置为引用,并勾选“Active”。这是我更改的唯一设置。
顺便说一下,我完全不明白为什么Eclipse在Project Properties下还有额外的“Project References”顶级项目。
无论如何,我尝试了内部生成器和外部生成器,还结合了“首选项->c++->Build->仅当Eclipse资源更改时才构建构建配置”的全局设置的组合……
谢谢你对此的任何看法。
更新: 在构建Proj2(Proj1是该库)所依赖的项目时,以下是控制台输出。 调用'make all',但它仅重新链接,而不重新编译Main.cpp,正如它应该做的那样。 有人熟悉由Eclipse生成的makefile吗?再次感谢。
顺便说一下,我完全不明白为什么Eclipse在Project Properties下还有额外的“Project References”顶级项目。
无论如何,我尝试了内部生成器和外部生成器,还结合了“首选项->c++->Build->仅当Eclipse资源更改时才构建构建配置”的全局设置的组合……
谢谢你对此的任何看法。
更新: 在构建Proj2(Proj1是该库)所依赖的项目时,以下是控制台输出。 调用'make all',但它仅重新链接,而不重新编译Main.cpp,正如它应该做的那样。 有人熟悉由Eclipse生成的makefile吗?再次感谢。
**** Build of configuration Debug for project Proj2 ****
make all
Building target: Proj2
Invoking: Cross G++ Linker
g++ -L"/home/user/.eclipse-workspace/Proj1/Debug" -o "Proj2" ./Main.o -lProj1
Finished building target: Proj2
**** Build Finished ****
编辑:这已经是1.5年前的内容了,但我想补充一下,Eclipse已经为此提交了一个bug: https://bugs.eclipse.org/bugs/show_bug.cgi?id=375800