Eclipse CDT无法在STL容器中的元素上解析方法

Eclipse CDT cannot parse methods on elements in STL containers

本文关键字:元素 方法 CDT STL Eclipse      更新时间:2023-10-16

我正在使用cdt的eclipse juno使用自定义makefile开发我的C 项目。我还在使用C 11个功能,我必须与Eclipse的解析器一起使用SO。

的建议。

问题是Eclipse无法解析STL容器元素上访问的方法或字段。例如:

mainapp.h

typedef struct _PlayerCalibrationData {
    [...]
    std::string getSamplesStr()
    {
            [...]
    }
} PlayerCalibrationData;
std::vector<MainApp::PlayerCalibrationData> m_calibrationData;

mainapp.cpp

m_calibrationData[0].getSamplesStr();

getSamplesStr()将被下划线并标记为错误,并带有消息"方法'getSamplesttr'无法解决"。

不管我是从eclipse还是从命令行调用它。

另外,当我键入m_calibrationData.时,所有通过内容辅助弹出的向量方法(即,Eclipse不是一个没有找到向量的问题),但是一旦我通过[]at()访问元素,内容辅助协助就安静了手动输入的任何内容都标记为错误。

这不起作用是正常的吗?如果是,是否有一种方法可以关闭专门针对基于模板的容器的辅助/更正?

编辑

我现在也尝试禁用C 11支持,如果我这样做,问题就会消失 - 但是当然,C 11类型和语法都无法识别。

编辑2

我导入了第二个项目,输入了完全相同的设置,并且为此项目,解析作品。唯一的区别是项目布局(Makefiles的不同位置)。但是,即使我删除并重新登录第一个项目,它仍然行不通。

这对我有用:

"您的项目名称" ->右键单击 ->属性:

c/c 常规 ->预处理器包括路径,宏等。->切换到名为"提供者"的选项卡:

  • 用于"配置"选择" repares"(然后是"调试")

  • 关闭所有提供商,只需选择" CDT GCC内置编译器设置"

  • 取消选中"共享项目(全球提供商)之间的共享设置条目"

  • 在"获取编译器规格的命令:" add" -std = c 11中,没有引号(也可以与报价一起使用)

  • 命中并关闭选项

  • 重建索引

这在我的两个杂物,在家和工作中都适合我Win7 X64,最新的官方日食与CDTMingw-W64 GCC 4.7.2来自SourceForge上的Mingwbuilds项目