我有一个很大的现有C++代码库。通常,代码库的用户使用gvim编辑源代码,但我们希望在Eclipse中使用漂亮的IDE功能。该代码库具有广泛的目录层次结构,但由于我们在构建过程中使用了某些伏都教,源文件使用不含路径的include指令。当我在Eclipse中将源代码链接到我的项目时,索引器会抱怨它找不到任何头文件(因为我们没有在包中指定路径)。如果手动将工作区中的目录添加到包含路径中一切正常,但显然手动添加数百个目录是不可行的。会不会有一个简单的方法告诉Eclipse在包含文件的项目中的任何位置查看,而无需逐一添加它们?如果没有,那么任何人都可以提出一个好的起始位置,比如什么类可以扩展,编写一个插件只需在创建/修改时扫描项目并以编程方式将所有目录添加到包含路径中?搜索整个项目的包括在Eclipse CDT
回答
这个功能已经在当前的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
是CDT管理构建路径的方法是看在你的项目目录的基地.cdtbuild XML文件(这可能是在Windows上使用不同的名称...不知道)
在这个你应该看到类似于
<option id="gnu.c.compiler.option.include.paths....>
<listoptionValue builtIn="false" value=""${workspace_loc:/some/path}$quot;" />
<listOptionValue ... />
...
</option>
这是您在gui中配置的所有构建路径所在的位置。使用简单的perl脚本将所有目录添加到该目录应该非常容易,可以遍历项目并生成所有listOptionValue条目。
这显然不是理想的方法。但我很好奇,你从哪个构建系统迁移而来,如果是基于make的话,你应该可以通过eclipse来使用你的构建文件。
根据您在构建过程中所使用的voodoo数量,Eclipse可能无法正确解析源文件,尤其是如果您对不同的源文件具有类似的命名标头时。如果你真的想充分利用Eclipse,你将需要确保你使用的任何设置都不会让解析器混淆。我个人建议有一个简单的布局和构建过程。
至于手头的问题,逐个添加目录几乎是你最好的选择。
从阅读this Eclipse CDT FAQ entry,这听起来像,如果你在Eclipse中开始你的构建,如果你的构建真正开始gcc
/g++
之前输出gcc
/g++
命令Eclipse可以自动生成包含目录列表。您可以通过在Project Properties下选择C/C++ Build类别并在对话框的右侧查找Build Command选项来更改Eclipse开始构建的方式。
- 1. Eclipse CDT的“路径必须包括项目和资源名称”
- 2. eclipse cdt autotools包括其他工作区项目源
- 3. 搜索整个项目
- 4. 的Eclipse CDT自动包括共享库
- 5. Eclipse CDT:自动化组织包括
- 6. 刷新eclipse cdt系统包括
- 7. 了解Eclipse CDT项目
- 8. Eclipse(CDT)项目默认值
- 9. 包括项目的Fields在Sitecore的搜索
- 10. 分享一个Eclipse CDT项目
- 11. Eclipse CDT的内建包含目录
- 12. 在eclipse项目中搜索maven dependencies
- 13. Intelij - 禁用“整个项目搜索”
- 14. Eclipse CDT - 在项目浏览器中缺少“存档”和“包含”
- 15. 包括与搜索
- 16. Eclipse CDT:获取C++项目的AST
- 17. Eclipse CDT无效的项目路径
- 18. Eclipse CDT的索引不工作的项目
- 19. eclipse cdt没有看到项目包中的头文件?
- 20. Eclipse CDT项目临时文件
- 21. eclipse CDT复制所有项目设置
- 22. 如何用Eclipse CDT开发QT项目?
- 23. Eclipse CDT - 新模板或“项目类型”
- 24. 将CMake项目导入到Eclipse CDT
- 25. Eclipse/CDT中的软件包
- 26. 如何搜索所有文件的一个项目在Eclipse
- 27. Ubuntu的Eclipse CDT的悬而未决包括<stdio.h>
- 28. Eclipse cdt在两个项目中使用库
- 29. Eclipse CDT C/C++:包含来自另一个项目的头文件
- 30. Ransack搜索包括参数
我刚刚测试过这个 - 它以最不舒服的方式工作。 它正在解析构建日志,并将包含g ++ -I/some/path行的路径添加到“system includes”中。 使用.cproject文件并自己添加它们,允许在VC中使用它。自动发现不。 – Evgeny 2008-11-30 16:05:25