我正在处理一些使用“vi”和“emacs”编写的遗留 C++ 代码,并且我正在尝试构建一个 Eclipse CDT 设置来维护它(在 linux 上)。我一直面临的两个主要问题是索引需要很长时间(超过 4 小时),而且即使完成了,eclipse 也几乎没有响应。
代码库以“3-4 级深度”的方式构建:
/system/${category}/${library}/
/server/${serverName}/${component}/
例子:
/system/CORE/CommandLine/*.cpp
/system/CORE/Connection/*.cpp
...
/server/Authentication/DB/Objects/*.cpp
/server/Authentication/Main/*.cpp
/system/* 下大约有 200 个“模块”,/server/Authentication/* 下大约有 50 个。 还有一个令人惊讶的复杂的制作系统,由想要炫耀他们制作能力的人编写的值(value) 20 年的 make-code :-)
到目前为止,我已经尝试了两种方法
1) 两个eclipse cdt项目,分别是/system和/Authentication
2) 每个“模块”有一个 eclipse cdt 项目,最终有 +200 个模块。我什至计算了模块之间的依赖关系。
在这两种方法中,索引都需要很长时间。在方法 1) 上,我遇到了很多 Unresolved 依赖关系问题。使用方法 2) eclipse 几乎没有响应,当我 ctrl+单击一个功能时,我可以去喝杯咖啡,然后在它响应之前回来......
有人参与过这样的大型项目吗?你有什么建议?
最佳答案
这里的一般建议是为 Eclipse 提供更多 RAM。首先,您需要调整 eclipse.ini
配置文件,因为默认配置文件不适合大型项目。这是我的 eclipse.ini
文件:
-startup
plugins/org.eclipse.equinox.launcher_1.2.0.v20110502.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_64_1.1.100.v20110502
-product
org.eclipse.epp.package.cpp.product
--launcher.defaultAction
openFile
--launcher.XXMaxPermSize
256M
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
256m
--launcher.defaultAction
openFile
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms512M
-Xmx4096M
-XX:PermSize=256M
-XX:MaxPermSize=512M
这里我使用 -Xmx4096M
来提供 4Gb 的 RAM。
为了提高响应能力,您还需要配置 Indexer Cache limits .我建议将所有参数增加 2-3 倍,具体取决于项目大小。
关于c++ - 大型 C++ 项目的推荐 Eclipse CDT 配置是什么(索引器需要永远),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9565125/