Eclipse CDT中的项目依赖项

Project dependency in Eclipse CDT

本文关键字:依赖 项目 CDT Eclipse      更新时间:2023-10-16

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

    我先编译项目A,然后再编译项目B,一切正常。
  1. 我对项目a进行了代码更改,需要构建项目a。
  2. 我尝试构建项目B,但它声明没有检测到任何更改。

我如何让项目B知道项目A的输出??目前,我不得不做一个干净的构建项目B为它重新链接到libA.a.

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

尝试以下设置:

  1. 转到Main ProjectC/c++通用路径与符号 →引用
  2. 勾选所有依赖项。

进入项目B的项目属性,选择项目引用,并使其引用(依赖)项目a

编辑,似乎是一个已知的错误

可以通过使用touch命令来解决这个问题。

在Eclipse中,作为C/c++ Build/Settings的一部分是"Build Steps"选项卡。在预构建步骤命令行中,输入touch filename

filename是应用程序中的任何文件。这可能是main()的文件。这可能是一个特殊的文件,touchdummy.c,它可以是一个很小的文件,编译速度很快。

当构建应用程序时,即使您没有更改任何源,touch命令也会导致make重新构建应用程序。如果重新构建了库,则使用新库重新构建应用程序。

可以在这里阅读touch如何影响文件的日期/时间。http://pubs.opengroup.org/onlinepubs/9699919799/utilities/touch.html

编辑:在Eclipse中确切的命令应该是touch ${ProjDirPath}/src/main.c

Edit:这个命令应该可以工作,但是如果'main'项目没有改变,预构建步骤就不会执行。touch命令还会使eclipse提示重新加载它所接触的文件。

Eclipse项目通过项目属性(依赖项目?)中的复选框相互依赖,这是Eclipse决定构建哪个项目的方式。您可以自己设置,但通常在更改Java构建路径时设置。

默认情况下,至少在QNX c++项目中,它不会检查其他项目中的更改。右键单击项目,展开"check dependencies on/off"->"check user header only"这似乎有效,大致上……它似乎做了一个make依赖于代码,并添加了*。D文件到输出文件夹,这些文件只是列出头文件的依赖文件。注意:这些似乎不能再生,并且过时了-我不知道如何再生它们。

项目(库):

Properties>C/c++ Build>Settings>Build Steps>Post-build Steps> touch -m ${ProjDirPath}/source/Build/build_updated.cpp

你应该创建文件夹"source/build"首先,不要在该文件夹中添加任何其他文件。

项目B:

Properties>Project References> check Project A

Properties>С/С++通用>路径和符号>源位置>链接文件夹>链接到文件系统中的文件夹>查找并选择" Source/build"