2 weixin 36617477 weixin_36617477 于 2017.09.04 09:38 提问

gcc 中c++11的编译问题

我的是ubuntu下编译c++ primer plus的这么一段程序

#include
#include
using namespace std;
int main()
{
string str("abcd"):
for(auto c : str)
cout << c << endl;
}

报错提示如下:
warming:auto changes meaning in C++11;please remove it [-Wc++0x-compat]
error:c dose not name a type
warming:range-based for loop without a type-specifier only available with -std=c++1z or -std=gnu++1z

我觉得是不支持c++11的auto才引发的一系列错误,但是不知道如何改

3个回答

qq_30069409
qq_30069409   2017.09.04 17:30
已采纳
LIBS = -std=c++11
之后LIBS加入到编译项里面去

weixin_36617477
weixin_36617477 是的,的确是这个问题
3 个月之前 回复
caozhy
caozhy   Ds   Rxr 2017.09.04 11:57

你要是有ide的话,在编译选项里面找找c++ 11支持是否勾选。如果是命令行,那么去掉[-Wc++0x-compat]

weixin_36617477
weixin_36617477 “去掉”的操作是怎么去实现呢?
3 个月之前 回复
weixin_36617477
weixin_36617477 我是 unbuntu terminal编程的
3 个月之前 回复
oyljerry
oyljerry   Ds   Rxr 2017.09.04 14:57
 g++ -std=c++1z -o test xxx.cpp
Csdn user default icon
上传中...
上传图片
插入图片