您的位置:首页 > 运维架构 > Linux

C++11的新特性在linux下终端中的编译运行

2014-11-27 20:11 627 查看
这几天向同学借了本,C++Primer(第五版),开始学习一下C++

可是在里面增加了一点新的内容C++11的新特性感到很新奇,于是就随便写个代码尝试一下

可是怎么编译就是不通过(使用的fedora 8编译环境)

#include <iostream>
#include <regex>
using namespace std;

int main()
{
int a = 9;
int *p = nullptr;

p = &a;

cout << "*p = " << endl;

return 0;
}


[root@localhost ~]# gcc 4.cpp -o k
4.cpp:2:17: 错误:regex:没有那个文件或目录
4.cpp: In function ‘int main()’:
4.cpp:8: 错误:‘nullptr’ 在此作用域中尚未声明
[root@localhost ~]#


后来查看资料发现原来是自己的编译器版本太低:

注:GCC4.8.1已完全支持C++11,Clang 3.3 也完全支持了C++11。

最新版本的Linux 发行版(RHEL 7,CentOS 7,Ubuntu 14.06,都自带了完全支持C++11的编译器。

后来又换一个高版本的gcc编译器(fedora 20 gcc 版本 4.8.2 20131017 (Red Hat 4.8.2-1) (GCC) )

而且还要在gcc 编译后面加上选项:-std=c++11或-std=gnu++11

[root@localhost ~]# g++ 1.cpp -o k -std=c++11
[root@localhost ~]# ./k
*p = 9
[root@localhost ~]#


写的不怎么样,希望对大家有帮助


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: