在过去的两年里,我一直在使用 Eclipse 进行嵌入式 linux 项目。
我可以在 Unbutu 主机上运行我的代码不变,因此我在主机上进行了大部分测试。每个项目都有一个针对主机的调试配置和针对使用交叉编译工具链构建的嵌入式 linux 设备的目标调试。
我的工作区有 20 多个项目,其中包括引用这些库的库和可执行文件。我遇到的问题是,每当我构建可执行文件时,eclipse 重建引用库的方式似乎都没有押韵或理由。当库中的任何代码都没有更改时,它几乎总是会构建其中的几个。当它构建库时,它会构建其中的所有源代码,而不仅仅是几个文件。在某些情况下,即使目标可执行文件是最新的并且本身没有重建,它也会这样做。我可以清理可执行文件,然后构建。立即进行另一个构建,而不是报告所有内容都是最新的,它可能仍会构建一些库。再次构建它可能会再次构建相同的库,或者在某些情况下最终报告所有内容都是最新的。
可执行文件的每个构建配置都有引用的确切库构建,而不是“活动”。例如,对于 Target-Debug 可执行构建配置,我引用了它所依赖的库的 Target-Debug 构建。当我构建可执行文件时,为库选择的“活动”构建配置通常可能与我正在构建的可执行文件不同,但如果可执行文件的构建配置引用特定的库构建配置,这无关紧要。
有一次,问题包括重建甚至不是同一类型的配置。也就是说,构建可执行文件的调试版本也会导致库的目标调试配置也被重新构建。通过取消选中项目引用(与 C/C++ 常规/路径和符号/引用相反)似乎可以解决该问题。
Helios、Juno 和现在的 Kepler 在各自的 CDT 版本中都遇到了同样的问题。
当它们没有改变时,如何防止eclipse重新构建依赖库项目?我已经尝试了一切来弄清楚它为什么会发生并寻找解决方案。也许对我在eclipse构建中的一些概念有一些误解?我很茫然...
任何建议将不胜感激。