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 ,他會自動下載,自動編譯,何樂而不為
真夠慢的,需要的同學直接下載
http://pan.baidu.com/s/1bnjGDhd
解壓到/usr/local/gcc4.7
