我第一次使用eclipse。我是一名经验丰富的VisualStudio用户,所以我试图在eclipse中找到类似的功能。我有两个项目,A和B.项目A在完成编译后吐出libA.a。项目B链接libA.a.这是我的问题。
如何让项目B了解项目A的输出?目前我不得不对项目B进行干净的构建,以便重新链接libA.a。
感谢。
编辑:在我的ProjectB->路径和符号 - >参考选项卡中,我检查了项目A.重建项目A后,这不会重新链接。
答案 0 :(得分:22)
尝试以下设置:
答案 1 :(得分:7)
进入项目B的项目属性,选择项目参考并在项目A上进行参考(依赖)。
修改,似乎是一个已知的bug
答案 2 :(得分:3)
可以使用'touch'命令解决此问题。
在Eclipse中,作为C / C ++ Build / Settings的一部分,是“Build Steps”选项卡。在预构建步骤命令行中,输入“touch filename”。
'filename'是应用程序中的任何文件。这可能是main()文件。这可能是一个特殊的文件,只是为了解决这个问题,touchdummy.c,它可以是一个很小的文件,可以快速编译。
当应用程序构建时,即使您没有更改任何源,“touch”命令也会导致make重建应用程序。如果库已重建,则使用新库重建应用程序。
可以在这里阅读“触摸”如何影响文件的日期/时间。 http://pubs.opengroup.org/onlinepubs/9699919799/utilities/touch.html
编辑:Eclipse中的确切命令是touch $ {ProjDirPath} /src/main.c
编辑:此命令应该有效,但看起来如果'main'项目没有改变,则不会执行预构建步骤。此外,'touch'命令会导致eclipse提示重新加载它触及的文件。一个很大的烦恼。
答案 3 :(得分:2)
Eclipse项目依赖于项目属性(依赖项目?)中的复选框,这就是Eclipse决定构建哪个项目的方式。您可以自己设置它,但通常在更改Java构建路径时设置它。
答案 4 :(得分:1)
默认情况下,至少在QNX C ++项目中,它不会检查其他项目的更改。 右键单击该项目,然后展开“检查依赖关系开启/关闭” - >“仅检查用户标题” 它似乎工作,大致...... 它似乎对代码进行了makedepends,并将* .d文件添加到输出文件夹,这些文件只是依赖于列出头文件的文件。 注意:这些似乎没有重新生成,并且过时了 - 我不知道如何重新生成它们。