我是第一次使用eclipse。我是一位经验丰富的 VisualStudio 用户,所以我试图在 eclipse 中找到类似的功能。我有两个项目,A 和 B。项目 A 在编译完成后会吐出 libA.a。项目 B 链接到 libA.a。这是我的问题。
- 我编译项目A然后项目B,一切都很好。
- 我对需要构建项目 A 的项目 A 进行了代码更改。
- 我尝试构建项目 B,但它表示未检测到任何更改。
如何让项目 B 知道项目 A 的输出?目前,我必须对项目 B 进行干净构建,才能重新链接到 libA.a。
谢谢。
编辑:在我的 ProjectB->Path and Symbols->References 选项卡中,我检查了项目 A。重建项目 A 后,这不会重新链接。
原文由 MarkP 发布,翻译遵循 CC BY-SA 4.0 许可协议
可以使用
touch
命令解决此问题。在 Eclipse 中,作为 C/C++ 构建/设置的一部分,是选项卡“构建步骤”。在预构建步骤命令行中,输入
touch filename
。filename
是您应用程序中的任何文件。这可能是带有main()
的文件。这可能是一个专门用于此解决方法的特殊文件touchdummy.c
,它可以是一个可以快速编译的小文件。构建应用程序时,即使您没有更改任何源,
touch
命令也会使 make 重新构建应用程序。如果库已重建,则应用程序将使用新库重建。可以在这里阅读
touch
如何影响文件的日期/时间。 http://pubs.opengroup.org/onlinepubs/9699919799/utilities/touch.html编辑:Eclipse 中的确切命令是 touch
${ProjDirPath}/src/main.c
编辑:这个命令应该可以工作,但似乎如果“主”项目没有改变,则不会执行预构建步骤。
touch
命令也会导致 eclipse 提示重新加载它接触的文件。一个很大的烦恼。