在centos6.2下编译gcc4.7

来源:互联网 发布:淘宝店铺html5 编辑:程序博客网 时间:2024/05/17 23:09

前两天买了C++标准库自学教程与参考手册第二版,里面介绍了C++11标准,所以需要一个支持大部分11标准的编译器,我的centos6.2下还是gcc4.4.7,需要将其升级到4.7,发现下面的方法很简单使用,然后转之。

说明:编译的时候需要加上 -std=c++11选项

转载:http://www.cnblogs.com/linbc/archive/2012/08/03/2621169.html

------------------------------------------------------------------------------------------------------------------------------

lambda表达式,想说爱你不容易。STL为我们提供了很多算法,却没有提供匿名函数,真是罪过!

本文的故事从此开始。

c++0x为我们带来了一阵春风,提供了lambda表达式,我们终于可以像c#那样去写程序了。

int a,b;

for_each(v.begin(),v.end(),[=](int &it){it = it*a+b;});

因为平时都是vs2010下面开发,部署的时候才注意到,centos6里面的gcc版本4.4的,不支持lambda,至少要4.5的版本才支持

好吧,既然4.7都来了,编译一下吧。

google了一下,很多同学写得用复杂,也做得更复杂,让我走了不少弯路,希望可以为别人提供一点帮助!

首先,把代码弄出来

安装一下以下包,不然,你有可能会收获链接不到libc.a的错误

sudo yum install glibc-static libstdc++-static

wget http://ftp.gnu.org/gnu/gcc/gcc-4.7.0/gcc-4.7.0.tar.gz

tar xvf gcc-4.7.0.tar.gz 

cd gcc-4.7.0 

./contrib/download_prerequisites 

cd .. 

mkdir build_gcc4.7

cd build_gcc4.7

../gcc-4.7.0/configure --enable-checking=release --enable-languages=c,c++ --disable-multilib

make -j4

sudo make install

我在服务器用了一个多小时后就可以了。。机器慢点,你就看开吧。。

很多文章都说自己去下载mpr等等三个库的源码,自己编译,这是相当不理智的,浪费了不少时间,因为我们自己去下载包括安装都有可能碰到版本问题,以及路径问题,好好的方案还是

使用./contrib/download_prerequisites  ,他会自动下载,自动编译,何乐而不为

原创粉丝点击