2008-11-08 84 views
7

我有一个很大的现有C++代码库。通常,代码库的用户使用gvim编辑源代码,但我们希望在Eclipse中使用漂亮的IDE功能。该代码库具有广泛的目录层次结构,但由于我们在构建过程中使用了某些伏都教,源文件使用不含路径的include指令。当我在Eclipse中将源代码链接到我的项目时,索引器会抱怨它找不到任何头文件(因为我们没有在包中指定路径)。如果手动将工作区中的目录添加到包含路径中一切正常,但显然手动添加数百个目录是不可行的。会不会有一个简单的方法告诉Eclipse在包含文件的项目中的任何位置查看,而无需逐一添加它们?如果没有,那么任何人都可以提出一个好的起始位置,比如什么类可以扩展,编写一个插件只需在创建/修改时扫描项目并以编程方式将所有目录添加到包含路径中?搜索整个项目的包括在Eclipse CDT

回答

2

这个功能已经在当前的CDT发展流实施,将在CDT 6.0,这将沿着与Eclipse 3.5在6月发布2009年

基本上,如果你有一个的#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

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来使用你的构建文件。

0

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

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

1

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

+0

我刚刚测试过这个 - 它以最不舒服的方式工作。 它正在解析构建日志,并将包含g ++ -I/some/path行的路径添加到“system includes”中。 使用.cproject文件并自己添加它们,允许在VC中使用它。自动发现不。 – Evgeny 2008-11-30 16:05:25