2010-12-20 53 views
5

我有一个Eclipse工作区,其中一个CDT项目与其他不相关的项目一起生活。但是,当我在其中一个项目中运行“构建为Ant构建”时,CDT也坚持重建其项目。为什么CDT在无关项目中重建Ant构建的C项目?

任何人有任何想法在哪里看断开这种“隐藏”的依赖? (不,它不在“链接资源”或“项目参考”中...)

+0

(对不起,如果我的问题不重要,我更熟悉CDT,更少使用Ant)你运行“构建为Ant构建”?当右键单击Ant构建文件时,我所能找到的就是“以Ant构建运行”。 – 2010-12-22 08:03:52

+0

对不起,我的错。我正是这个意思。由于这个问题对我没有检查的问题并不重要,所以对此抱歉。 – thoni56 2010-12-22 08:44:11

回答

3

工作空间的全部构建实际上是由于我无法在“外部工具配置”中找到构建选项而导致的。您可以指定构建整个工作区,包含项目或某个特定资源。

还有一个Eclipse bug设置默认为不同于构建整个工作区。 (可以认为“以Ant身份运行”默认情况下不会生成任何东西,除非运行指定的Ant目标。)

0

尝试取消选中Build Automatically复选框,在Project菜单下。

+0

您是否指CDT项目?即使这会起作用,它似乎不是正确的解决方案。因为如果我希望我的CDT项目在资源保存时自动生成,我需要在切换项目时将其打开和关闭。 – thoni56 2010-12-21 23:55:51

+0

你可能是对的。由于该复选框似乎是“全局”(与所有项目相关),因此我认为不可能为每个项目单独控制自动构建。 (我的答案可能受我习惯的影响...) – 2010-12-22 07:30:06

2

项目构建者在某个构建触发器的请求下运行。这可能是资源更改(当您自动启用构建时)或者它可能是您正在使用的构建操作:“构建为Ant构建”。构建操作可能会无意中请求构建整个工作区。

将下面的一个文本文件:

# Eclipse build 
org.eclipse.core.resources/debug=true 
org.eclipse.core.resources/build/interrupt=true 
org.eclipse.core.resources/build/invoking=true 
org.eclipse.core.resources/build/needbuild=true 
#Managedbuild 
org.eclipse.cdt.managedbuilder.core/debug/builder=true 
org.eclipse.cdt.managedbuilder.core/debug=true 
org.eclipse.cdt.managedbuilder.core/debug/pathEntryInit=false 
org.eclipse.cdt.managedbuilder.core/debug/pathEntry=false 

它们与其他的交换机运行Eclipse:

-debug <trace_options>.file 

这将回声跟踪打印到您的Eclipse启动外壳。您可以使用它来更好地定位您肯定会提交的错误报告:)

+0

好吧,所以这不起作用,除非我把选项文件放在.../Eclipse.app/Contents/MacOS(在MacOSX中)。但是,对于我的每个项目,trace trace都包含以下内容: – thoni56 2010-12-22 09:16:30

+0

但是,对于我的每个项目,trace out都包含以下内容:“在构建器上调用(FULL_BUILD):CommonBuilder(AlanIDE)” – thoni56 2010-12-22 09:48:22