Eclipse CDT没有在头文件更改上构建项目

hae*_*lix 17 eclipse reference header eclipse-cdt

我有Eclipse Platform 3.7.2和CDT 8.0.2.

当我想要从其他工作区项目执行"Build All"标头时,不会将其视为依赖项,也不会重建任何内容.

我有一个hello world应用程序和一个静态库项目.静态库在Project Properties中设置为引用 - > c/c ++ general - > Paths and SYmbols - > References选项卡 - >选中'Active'.这是我改变的唯一设置.

顺便说一句,它完全胜过我为什么Eclipse在Project Properties下有一个额外的"Project References"顶级项目.

无论如何,我尝试了外部构建器(在项目创建时默认选中)和内部构建器,还结合了全局设置'首选项 - > c ++ - >构建 - >构建配置的组合,只有当Eclipse资源发生变化时........"

感谢您对此的任何想法.

更新:这是构建依赖项目Proj2(Proj1是lib)时的控制台输出.'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 ****
Run Code Online (Sandbox Code Playgroud)

编辑:这已经有1.5年了,想补充说已经为此提交了一个Eclipse错误:https: //bugs.eclipse.org/bugs/show_bug.cgi?id = 375500

Jan*_*Jan 7

这个问题存在一个错误:https: //bugs.eclipse.org/bugs/show_bug.cgi?id = 375500

一个工作和整洁的解决方法(orignal请求者已经知道这一点).所以我只是交换到实际答案:) https://bugs.eclipse.org/bugs/show_bug.cgi?id=375800#c11

所有学分归KrzysztofCzaińsk所有

在您的项目c或c ++编译器设置中添加-MT ${OUTPUT_PREFIX}${OUTPUT}标志后:

${COMMAND} ${FLAGS} -MT ${OUTPUT_PREFIX}${OUTPUT} ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT} ${INPUTS}
Run Code Online (Sandbox Code Playgroud)

这将创建正确的.d文件


增加:解决方法有一个副作用.清洁之后make all总是运行两次,之后无所事事.改变后仍然比不编译更好;-)