在Eclipse CDT中搜索整个项目包含

时间:2008-11-08 00:07:43

标签: c++ eclipse eclipse-cdt

我有一个很大的现有c ++代码库。通常,代码库的用户使用gvim编辑源代码,但我们想开始使用Eclipse中的漂亮IDE功能。代码库有一个广泛的目录层次结构,但由于我们在构建过程中使用了一些伏都教,源文件使用包含指令而没有路径。当我在Eclipse中将源链接到我的项目时,索引器抱怨它找不到任何头文件(因为我们没有在我们的包中指定路径。)如果我手动将工作区中的目录添加到包含路径然后一切都运行得很好,但显然手动添加数百个目录是不可行的。是否有一个简单的方法告诉Eclipse在项目的任何地方查找包含文件而不必逐个添加它们?如果没有,那么任何人都可以建议一个良好的起点,比如要扩展的类,编写插件只是在创建/修改时扫描项目并以编程方式将所有目录添加到包含路径?

4 个答案:

答案 0 :(得分:5)

CDT管理构建路径的方式是查看项目目录底部的.cdtbuild xml文件(在Windows上可能是一个不同的名称......不确定)

在这里你应该看到像

这样的东西
<option id="gnu.c.compiler.option.include.paths....>
<listoptionValue builtIn="false" value="&quot;${workspace_loc:/some/path}$quot;" />
<listOptionValue ... />

...
</option>

这是您在gui中配置的所有构建路径的位置。使用简单的perl脚本将所有目录添加到此处应该非常容易,以便遍历项目并生成所有listOptionValue条目。

这显然不是理想的方法。但我很好奇,你从哪个构建系统迁移,如果它是基于make的,你应该能够让eclipse使用你的make文件。

答案 1 :(得分:2)

此功能已在当前的CDT开发流中实现,并将在CDT 6.0中提供,将于2009年6月与Eclipse 3.5一起发布。

基本上如果你有一个#include并且头文件存在于项目的某个地方,那么CDT将能够找到它而无需手动设置包含路径。

如果您现在需要此功能,可以下载并安装最新的CDT开发版本。

Eclipse Bugzilla: https://bugs.eclipse.org/bugs/show_bug.cgi?id=21356
最新的CDT 6.0版本: http://download.eclipse.org/tools/cdt/builds/6.0.0/index.html

答案 2 :(得分:1)

从阅读this Eclipse CDT FAQ entry开始,如果从Eclipse内部开始构建并且构建输出gcc / g++命令,Eclipse会自动生成包含目录列表在实际开始gcc / g++之前。您可以通过在Project Properties下选择C / C ++ Build类别并在对话框右侧查找Build Command选项来更改Eclipse启动构建的方式。

答案 3 :(得分:0)

根据您在构建过程中执行的voodoo数量,Eclipse可能无法正确解析源文件,尤其是如果您对不同的源文件具有类似命名的标头。如果你真的想要充分利用Eclipse,你需要确保无论你有什么设置,你都不会混淆解析器。我个人建议有一个简单的布局和构建过程。

至于手头的问题,逐个添加目录是最好的选择。

相关问题