pho*_*olz 6 c++ eclipse stl eclipse-cdt
我正在使用带有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;
Run Code Online (Sandbox Code Playgroud)
mainapp.cpp
m_calibrationData[0].getSamplesStr();
Run Code Online (Sandbox Code Playgroud)
getSamplesStr() 将加下划线并标记为错误,消息"方法'getSamplesStr'无法解析".
但是,无论我是从Eclipse还是从命令行调用它,编译器都不会抱怨.
此外,当我键入时m_calibrationData.,所有向量方法都通过内容辅助弹出(即,这不是Eclipse没有找到向量包含的问题),但是一旦我通过[]或访问元素at(),内容辅助就会安静,并且任何手动输入都会被标记作为一个错误.
这不起作用是正常的吗?如果是,有没有办法可以特别关闭基于模板的容器的辅助/纠正?
编辑
我现在也尝试禁用c ++ 11支持,如果我这样做,问题就会消失 - 但当然无法识别c ++ 11类型和语法.
编辑2
我导入了第二个项目,输入了完全相同的设置,对于这个项目,解析工作正常.唯一的区别是项目布局(makefile的不同位置).但即使我删除并重新导入第一个项目,它仍然无效.
这对我有用:
"您的项目名称" - >右键单击 - >属性:
C/C++ General - >预处理器包括路径,宏等 - >切换到名为"Providers"的选项卡:
对于"配置"选择"发布"(以及之后的"调试")
关闭所有提供程序,只需选择"CDT GCC内置编译器设置"
取消选中"在项目之间共享设置条目(全局提供商)"
在"获取编译器规范的命令:"中添加"-std = c ++ 11",不带引号(也可以使用引号)
点击应用并关闭选项
重建索引
这适用于我的两个mashines,在家里和工作win7 x64,最新官方日食与cdt mingw-w64 gcc 4.7.2来自sourceforge上的mingwbuilds项目
|   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           2615 次  |  
        
|   最近记录:  |