引用:http://www.360doc.com/content/10/0407/15/1066294_21950848.shtml
符号检索:
符号检索是对一个工程中所有C/C++源代码中各种符号、名字引用的快速定位。目前优秀的代码编辑环境都支持符号检索,比如:VC内置的Intellisense、VC的Visual Assist X插件、SourceInsight等。目前,无论是哪种支持符号检索的编辑环境,在使用符号检索功能前,都需要对一个工程中的C/C++源代码进行扫描,生成索引数据库,例如VC的.ncb文件,就是VC的Intellisense生成的索引数据库文件。
CDT的索引数据库文件格式是.pdom,保存在Workspace的配置目录:.metadata/.plugins/org.eclipse.cdt.core 目录下,索引数据库文件名格式一般是:[Project-Name].[Random-NO].pdom。
索引数据库的生成选项在Workspace和Project中都可以配置,Project中的配置会覆盖Workspace中的配置。Workspace中索引的配置在:C/C++→Indexer 中。
在Indexer中,可以选择三种建立索引的基本方式:Fast C/C++ Indexer(快速索引)、Full C/C++ Indexer(完全索引)、No Indexer(无索引),一般选择Fast C/C++ Indexer,就足够对一般工程的代码进行准确地符号检索了。如果觉得使用Fast C/C++ Indexer时,有些符号仍然不能正确检索,可以将选项Index all files选择上,不过这样建立的索引文件就会变大,建立索引的过程也会变慢,所以不建议在Workspace的索引配置里选择这个选项。
在Files to index up-front中输入的文件名,会在建立索引时首先被扫描,默认是:stdarg.h、stddef.h、sys/types.h。
在Indexing strategy可以设置建立索引活动的策略:
- Automatically update the index:自动更新索引。
- Update index immediately after every file-change:当文件内容改变后,立即更新索引。
CDT的索引建立过程本来就有些慢,而上面两个选项会使建立索引活动变得更频繁。不过为了在最新的代码文件中使用准确的符号检索,一般将这两个选项选择。
在Build configuration for the index中,可以指定索引配置如何应用到工程配置项中:
- Use active build configuration:使用活动的工程配置项建立工程的索引。我一般使用这个选项,因为工程配置项会影响到C/C++源代码和符号检索,比如:一段代码受工程配置项中的宏定义影响,而使用不同的内容。
- Use the build configuration specified in the project's indexer settings:在Workspace中不指定被索引的工程配置项,将该任务放到Project的配置中设置。
使用符号检索的方法有多种。最简单、最常用的是跟踪符号到其定义或声明,方法是:按住Ctrl键,然后点击某个符号,就会跳转到其定义或声明位置。
index source files not included in the build
这个别打钩,要不build的时候不会建立索引。
优化开启速度:
代码跳转:
1. 对于相关工程,增加依赖:
注意,需要在相关工程根目录上,右键,properties窗口:
Eclipse+CDT 头文件无法解析的问题:
首先,如果你是yi'ge'gong一个工程ch重新导入出现的wen'ti问题,请首先jian'ch检查编码问题,因为编码会改变程序的huan换行等等,引起编译问题。
Eclipse CDT功能很强大,安装完虽然可以编译运行c++程序,但有个问题,就是找不到c++标准库的头文件,无法打开诸如之类的文件,编译器警告如下:
显示
Unresolved inclusion:
尽管不影响编译,却无法定位头文件中的符号。原因是没有指定Eclipse的C和C++的目录,可以通过设定Eclipse中 C_INCLUDE_PATH 和 CPP_INCLUDE_PATH 两个环境变量指定头文件目录。
在 Window -> Preferences -> C/C++ -> Environment 中添加这两个变量:
将C_INCLUDE_PATH 设为 /usr/include
将CPP_INCLUDE_PATH 设为 /usr/include/c++/4.2.1
其中4.2.1是gcc的版本,用gcc --version可以获得,改成相应版本即可。
加入这两个变量后,Eclipse就可以正常识别c++标准库的头文件了。Eclipse将Includes文件全都加入到项目中