首先,我了解用于启用 c++11 支持的 -std=c++11 标志及其放置位置。我已附加-std=c++11
to Project -> Properties -> C/C++ Build -> Settings -> Tool Settings -> GCC C++ Compiler -> Miscellaneous -> Other Flags
并且编译工作正常。但索引器无法相处,例如,如果我想使用emplace
的函数std::map
(c++11),它不会找到 emplace 函数。
#include <map>
int main() {
std::map<int, int> data;
data.emplace(5,5);
我还检查了这些相关问题:
- Eclipse CDT 索引器不识别 C++11 容器
- 在 Eclipse CDT (Juno/Kepler/Luna) 索引器中启用 C++11
- http://www.eclipse.org/forums/index.php/mv/msg/373462/909018/#msg_909018
更新:现在我已经玩过它了,甚至无法识别 std::map 类型,尽管编译良好并且 Eclipse 找到了所有标头...
- 编译器 Mingw64 GCC 5.2.0
- 日食火星 4.5
- CDT 8.7
Eclipse Mars 的做法与之前的版本略有不同。
第一步获取突出显示正在工作的索引器错误 - 包含在在 Eclipse CDT (Juno/Kepler/Luna) 索引器中启用 C++11上面链接了。如果你已经完成了这一切,如果我知道你遇到了什么,我会感到很惊讶。到目前为止,火星有点不稳定。
- 转到项目->属性->C/C++ 常规->预处理器包含路径。
- 单击“提供商”选项卡。
- 点击CDT GCC内置编译器设置MinGW
- 单击右侧的上移按钮。
- Under Language Settings Provider Options
- 单击“使用在项目之间共享的全局提供程序”
- 将 -std=c++1y 添加到 Command 中命令行的末尾以获取编译器规格。
顺便说一句,如果有人知道全局设置在哪里以便我可以默认此行为,请告诉我。
第 2 步让编译器开始工作
- 转到项目->属性->C/C++ 构建->设置。
- 转到工具设置选项卡。
- 展开 GCC C++ 编译器
- 单击方言
从“语言标准”下拉列表中选择您希望针对的 C++ 标准。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)