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
这个问题存在一个错误: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}
标志后:
Run Code Online (Sandbox Code Playgroud)${COMMAND} ${FLAGS} -MT ${OUTPUT_PREFIX}${OUTPUT} ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT} ${INPUTS}
这将创建正确的.d文件
增加:解决方法有一个副作用.清洁之后make all
总是运行两次,之后无所事事.改变后仍然比不编译更好;-)