我有一个包含多个项目的工作区,所有这些项目都没有问题。但是,由于未解决的包含,一些项目在编辑器中提供了许多关于未解析符号的警告。大多数是来自工作区中的其他项目或第三方库的标头。
谷歌搜索表明这是索引器的一个问题,但我没有找到任何关于如何解决它的连贯解释 - 我假设我需要将这些库的路径添加到索引器的PATH,但我看不到任何选项那样做(我正在使用Juno)。
任何人都可以向我解释如何配置CDT的索引器?
我也没有得到解决,包括两个项目中的STL标题警告。一些STL头被解析但其他的不是,并且两个项目之间的列表似乎不一样(一个找到像vector和iostream这样的东西,但不是sstream或string,另一个找不到iostream) 。
可能相关:这些是C ++项目,但所有文件扩展名都是.c。我将GCC C Compiler命令更改为'g ++'来编译它们,但我想我还需要对索引器设置做些什么来应对它?
好的,我现在已经解决了这个问题。
未解决包括工作区中的其他项目和第三方库通过添加其他项目作为参考来解决。我想编译器知道在哪里看,因为我已经将位置添加到Includes列表中,但是索引器没有(可能是由于eclipse只处理头文件一次?)
尚未解决的问题包括STL我通过将所有实际上是C ++的.c文件更改为.cpp来修复。只是将编译命令更改为'g ++'显然不足以告诉索引器将项目视为C ++。
在1)的情况下,我需要首先清理/重建引用项目的索引以删除未解决的包含错误。
好的,我现在已经解决了这个问题。
未解决包括工作区中的其他项目和第三方库通过添加其他项目作为参考来解决。我想编译器知道在哪里看,因为我已经将位置添加到Includes列表中,但是索引器没有(可能是由于eclipse只处理头文件一次?)
尚未解决的问题包括STL我通过将所有实际上是C ++的.c文件更改为.cpp来修复。只是将编译命令更改为'g ++'显然不足以告诉索引器将项目视为C ++。
在1)的情况下,我需要首先清理/重建引用项目的索引以删除未解决的包含错误。
右键单击工作区中的项目,然后选择 Properties
- > C++ General
- > Paths and Symbols
,然后在可用选项卡上添加特定编译器的包含和符号,添加库以及其他所需的内容。在那之后 Apply
- 它应该开始重新索引,你的问题应该消失了。
我有一个类似的问题,我的项目将在其中构建,但在Eclipse Kepler中显示未解决的问题。
就我而言,我已经采用了现有的ARM项目,并创建了一个使用不同工具链的自定义构建配置。新的构建配置具有所有正确的包含,因此项目正确构建但索引器没有提取它。
我通过设置索引器来使用活动的构建配置来修复它。 在Window-> Preferences-> C / C ++ - > Indexer中,在标记为“构建索引器的配置”的部分下,我选择了“使用活动的构建配置”并将其清除。
所有答案都有帮助,但还有另一个技巧解决了我的问题。
我发现与编译器相反 索引器不处理包含路径的子目录。因此,在包含头文件时需要更具体。
例
#include“subdirectory \ include_2.h”