我正在使用带有 CDT 的 Eclipse Juno 来使用自定义 makefile 开发我的 C++ 项目。我还在使用 C++11 功能,我必须按照此处关于 SO 的建议使用 Eclipse 的解析器。
问题是 Eclipse 无法解析在 STL 容器元素上访问的方法或字段。例如:
主应用程序.h
typedef struct _PlayerCalibrationData {
[...]
std::string getSamplesStr()
{
[...]
}
} PlayerCalibrationData;
std::vector<MainApp::PlayerCalibrationData> m_calibrationData;
主应用程序.cpp
m_calibrationData[0].getSamplesStr();
getSamplesStr()
将带有下划线并标记为错误,并显示消息“无法解析方法'getSamplesStr'”。
但是,无论我是从 Eclipse 还是从命令行调用它,编译器都不会抱怨。
此外,当我键入时m_calibrationData.
,所有向量方法都会通过内容辅助弹出(即,这不是 Eclipse 找不到向量包含的问题),但是一旦我通过[]
or访问元素at()
,内容辅助就会安静,并且手动键入的任何内容都会被标记作为一个错误。
这不起作用是正常的吗?如果是,有没有办法可以专门关闭基于模板的容器的辅助/校正?
编辑
我现在还尝试禁用 c++11 支持,如果我这样做了,问题就消失了——但是当然 c++11 类型和语法无法识别。
编辑 2
我导入了第二个项目,输入了完全相同的设置,并且对于这个项目,解析工作正常。唯一的区别是项目布局(makefile 的不同位置)。但即使我删除并重新导入第一个项目,它仍然不起作用。