配置yum源
此處我們使用163的yum源,配置如下
首先備份/etc/yum.repos.d/CentOS-Base.repo
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
下載對應版本repo文件, 放入/etc/yum.repos.d/(操作前請做好相應備份),以下為下載鏈接
https://mirrors.163.com/.help/CentOS6-Base-163.repo
運行以下命令生成yum緩存
yum clean all
yum makecache
使用yum配置c++編譯環境
yum配置好之后,配置c++編譯環境命令如下
yum -y install gcc gcc-g++
安裝完成之后c++環境即可配置好。
寫一個hello worl代碼如下
#include<iostream>
using namespace std;
int main()
{
cout<<"Hello World!"<<endl;
return 0;
}
以上代碼保存文件名為aa.cpp,用c++編譯並執行的操作如下
g++ -o hello aa.cpp
./aa.cpp
源碼編譯安裝c++11編譯環境
因為yum自帶的gcc版本過低,並且c++11需要gcc4.8以上版本支持,因此需要下載gcc4.8以上版本以支持c++11
查看本地gcc版本
gcc -v
本次版本為gcc version 4.4.7 20120313 (Red Hat 4.4.7-17) (GCC)
獲取gcc4.8.2版本的source code
源碼默認放在src目錄下
cd /usr/local/src
wget http://gcc.skazkaforyou.com/releases/gcc-4.8.2/gcc-4.8.2.tar.gz
文件有100M,國外網站下載速度很慢,請耐心等待(可用國外vps下載中轉)
下載完成后,放在/usr/local/src下
解壓縮
tar -zxvf gcc-4.8.2.tar.gz
編譯源碼並安裝
進入gcc目錄
cd gcc-4.8.2
下載配置安裝gcc4.8.2的依賴庫
./contrib/download_prerequisites
建立編譯輸出目錄
在當前路徑下執行即可
mkdir gcc-build-4.8.2
開始configure
../configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
--enable-languages
表示你要讓你的gcc支持那些語言--disable-multilib
不生成編譯為其他平台可執行代碼的交叉編譯器--disable-checking
生成的編譯器在編譯過程中不做額外檢查
編譯
在編譯輸出目錄gcc-build-4.8.2直接make即可
make
源碼make過程耗時較長,一般需要半個小時以上。
安裝
make install
驗證是否升級成功
使用which gcc
檢查gcc安裝的為止,使用gcc -v
檢查版本,如果仍然沒有變,請關閉當前會話重新連接看是否變成4.8.2,如果仍未變,需要重啟系統
驗證C++11程序是否可用
lambda表達式是C++11的新特性,以下程序即可驗證c++11是否可用
參考:http://en.cppreference.com/w/cpp/container/array
#include <iostream>
using namespace std;
int main()
{
int n = [] (int x, int y) { return x + y; }(5, 4);
cout << n << endl;
}
驗證方法
g++ -std=c++11 -o lambda vv.cpp
如果使用g++不加-std=c++11
參數,則會報錯,報錯如下
[root@host-192-168-150-182 tmp]# g++ -o lambda vv.cpp
vv.cpp: In function ‘int main()’:
vv.cpp:9:46: warning: lambda expressions only available with -std=c++11 or -std=gnu++11 [enabled by default]
int n = [] (int x, int y) { return x + y; }(5, 4);
^
更新gcc動態鏈接庫
源碼編譯升級安裝了gcc后,編譯程序或運行其它程序時,有時會出現類似/usr/lib64/libstdc++.so.6: versionGLIBCXX_3.4.18' not found的問題。這是因為升級gcc時,生成的動態庫沒有替換老版本gcc的動態庫導致的,將gcc最新版本的動態庫替換系統中老版本的動態庫即可解決。可參考以下鏈接
http://itbilu.com/linux/management/NymXRUieg.html
記得幫我點贊哦!
精心整理了計算機各個方向的從入門、進階、實戰的視頻課程和電子書,按照目錄合理分類,總能找到你需要的學習資料,還在等什么?快去關注下載吧!!!
念念不忘,必有回響,小伙伴們幫我點個贊吧,非常感謝。
我是職場亮哥,YY高級軟件工程師、四年工作經驗,拒絕咸魚爭當龍頭的斜杠程序員。
聽我說,進步多,程序人生一把梭
如果有幸能幫到你,請幫我點個【贊】,給個關注,如果能順帶評論給個鼓勵,將不勝感激。
職場亮哥文章列表:更多文章
本人所有文章、回答都與版權保護平台有合作,著作權歸職場亮哥所有,未經授權,轉載必究!