c++11&14-編譯

1. c++11&14怎麼編譯

學習c++11的時候,個人redhat虛擬機上的g++纔是4.1.2版本,而g++4.7版本纔開始支持c++11的,因此要使用c++11,首先須要將咱們的g++編譯器升級到4.7或者以上版本,這裏我選擇的是GCC的 7.1.0版本。c++

注意:大意義上來說,GCC是一個編譯器集合,拿到源代碼後編譯出來各類編譯器,若是咱們選擇編譯c,c++的編譯器,就會生成gcc和g++。這裏的gcc是專門正對於c代碼的編譯器,g++則是專門針對於c++代碼的編譯器,gcc和g++最顯著的區別是g++會調用-lstdc++庫,gcc不會。shell

1.1 g++升級

1.1.1 下載gcc
wget http://ftp.gnu.org/gnu/gcc/gcc-6.1.0/gcc-7.1.0.tar.bz2
tar -jxvf gcc-7.1.0.tar.bz2
複製代碼
1.1.2 下載編譯gcc時需使用的依賴項
cd gcc-7.1.0
./contrib/download_prerequisites //這個腳本會自動下載依賴項,但耗時很長,先去吃飯了
複製代碼
1.1.3 生成makefile文件及編譯安裝

創建一個單獨的目錄用於存放編譯生成文件學習

mkdir gcc-build-7.1.0
cd gcc-build-7.1.0
../configure -enable-checking=release -enable-languages=c,c++ -disable-multilib
make -j4
make install
複製代碼

此時使用g++ --version,就能夠看到版本已是7.1.0了。測試

1.2 c++11編譯

通常的,咱們要編譯c++11,都要使用g++ -std=c++11,但據我測試,7.1.0的版本已經默認支持c++11和c++14了,因此就不用再寫明-std=c++11的選項了,能夠直接使用g++編譯c++11或者c++14的代碼啦,固然若是想知道某個特性究竟是屬於c++11仍是c++14,就能夠使用-std=c++11和-std=c++14來辨別。ui

相關文章
相關標籤/搜索