2014年01月29日 星期三 17:17
CentOS自带的gcc编译器是4.4版本,算是比较古老的一个版本了,不支持现代的C++11标准,如果我们想要使用C++11标准的新特性,就需要安装一个新版本的gcc-c++编译器。但自行编译安装编译器和libstdc++是一件非常费时费力的事情,远比安装一个apache复杂的多。所以我还是倾向于使用上游编译好的PRM来安装。
devtoolset是Redhat提出的一种新的软件多版本共存方案。多个版本的gcc可以并存,并且不会引起rpm安装包的冲突。
devtoolset 2.0版本提供如下软件:
gcc-c++ 4.8.1版本已经可以完整的支持C++ 11标准了,而且在编译速度、错误提示的可读性方面都有很大的改进。
安装devtoolset 2.0首先需要配置yum的软件源:
$ sudo wget -O /etc/yum.repos.d/slc6-devtoolset.repo http://linuxsoft.cern.ch/cern/devtoolset/slc6-devtoolset.repo
然后就可以安装了:
$ sudo yum install devtoolset-2
devtoolset包括的软件包非常多,安装过程需要一段时间。安装完毕后,可以通过如下指令将开发环境切换到devtoolset 2.0:
$ scl enable devtoolset-2 bash
然后就可以通过g++ -v 来查看编译器的版本了。下面的实例代码可以检测编译器是否支持C++11特性:
#include <iostream> #include <string> #include <array> using namespace std; int main(int argc,char **argv) { auto i=100; auto s="123qwe"; cout << i << s << endl; array<int,3> ary={1,2,3}; for(auto x : ary) { cout << x << endl; } }
编译指令:
$ g++ -o c11 c11.cpp -std=c++11
如果可以正常编译运行,那么我们的新版本编译器就算是安装成功了。
参考资料:
http://linux.web.cern.ch/linux/devtoolset/
Zeuux © 2024
京ICP备05028076号