Eclipse CDT 中的项目依赖关系

新手上路,请多包涵

我是第一次使用eclipse。我是一位经验丰富的 VisualStudio 用户,所以我试图在 eclipse 中找到类似的功能。我有两个项目,A 和 B。项目 A 在编译完成后会吐出 libA.a。项目 B 链接到 libA.a。这是我的问题。

  1. 我编译项目A然后项目B,一切都很好。
  2. 我对需要构建项目 A 的项目 A 进行了代码更改。
  3. 我尝试构建项目 B,但它表示未检测到任何更改。

如何让项目 B 知道项目 A 的输出?目前,我必须对项目 B 进行干净构建,才能重新链接到 libA.a。

谢谢。

编辑:在我的 ProjectB->Path and Symbols->References 选项卡中,我检查了项目 A。重建项目 A 后,这不会重新链接。

原文由 MarkP 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 450
2 个回答

可以使用 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 提示重新加载它接触的文件。一个很大的烦恼。

原文由 KeithSmith 发布,翻译遵循 CC BY-SA 4.0 许可协议

尝试以下设置:

  1. 转到 主项目 的属性 → C/C++ 常规路径和符号参考
  2. 勾选所有依赖项。

原文由 Mamatha 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题