LINUX下編譯c++11的程式碼
阿新 • • 發佈:2018-11-11
C++11,(即ISO/IEC 14882:2011),是目前的C++程式語言的最新正式標準。它取代了第二版標準(第一版公開於1998年,第二版於2003年更新,分別通稱C++98以及C++03,兩者差異很小)。新的標準包含核心語言的新機能,而且擴充套件C++標準程式庫。C++11新標準由C++標準委員會於2011年8月12日公佈,並於2011年9月出版。此次標準為C++98釋出後13年來第一次重大修正。
像C++這樣的程式語言,通過一種演化的的過程來發展其定義。這個過程不可避免地將引發與現有程式碼的相容問題,在C++的發展過程中偶爾會發生。不過根據Bjarne Stroustrup
目前最新版本的GCC/G++是4.8,新版本的GCC支援最新的C++11標準,十分值得去使用&學習。 下面讓我們在Ubuntu12.04 LTS用上GCC最新版本,去體驗C++11新標準帶來的東西吧!
首先非原始碼編譯式安裝:
[c++] view plain copy- sudo add-apt-repository ppa:ubuntu-toolchain-r/test
- sudo apt-get update
- sudo apt-get install gcc-4.8
- sudo apt-get install g++-4.8
等GCC/G++下載並安裝完以後,測試是否安裝成功: [c++] view plain copy
- gcc-4.8 -v
- g++-4.8 -v
如果顯示版本號表示安裝成功:
安裝成功後我們如果要使用gcc-4.8和g++-4.8來編譯的話,我們就得把gcc改為gcc-4.8,g++同理,改為g++-4.8來進行編譯。
此時使用gcc -v檢視預設版本,為4.6版本:
如果你想直接使用gcc-4.8而不改變編譯時gcc改為gcc-4.8的話,我們就可以更改一下gcc的軟連結:
[c++] view plain copy- sudo rm /usr/bin/gcc
- sudo ln -s /usr/bin/gcc-4.8 /usr/bin/gcc
- sudo rm /usr/bin/g++
- sudo ln -s /usr/bin/g++-4.8 /usr/bin/g++
既然GCC-4.8使用了最新的C++11標準,但是我們為什麼還是提示錯誤呢?解決方法如下:
在編譯的時候新增-std=c++11選項即可正常編譯C++11標準的程式碼!
- //第一種,直接包含在源程式檔案中,如第一行程式碼所示
- using namespace std;
- int main(int argc,char **argv)
- {
- cout<< "hello world!"<< endl;
- auto i= 10;
- cout<<i<< endl;
- return 0;
- }
- //第二種方法,可以直接取別名方法 如下所示:
- alias g++= 'g++ -std=c++11'
- g++ hw.cpp -o hw