Code::Blocks如何支持C++11特性

爲了給同事分享C++11標準,須要一個演示C++11的編程環境。VS2013太大,安裝起來不太方便。因爲電腦上以前有安裝codeblock,因而升級MinGW。去MinGW官網http://www.mingw.org/上去下載一個安裝程序,安裝完成後,打開安裝管理器MinGW Installer,把Basci Setup裏邊的全都安裝完。而後設置windows裏的環境變量,打開codeblock的配置,配置編譯器和調試環境。以下圖。ios

而後建立一個C++工程,編譯。代碼以下:  auto是C++11中的關鍵字,用來檢測編譯器是否支持C++11標準。c++

#include <iostream>

using namespace std;

int main()
{
    auto xx = 12;
    cout << "Hello world!" << endl;
    return 0;
}

 竟然編譯不過,Execution of 'mingw32-g++.exe -Wall -g -c  Failed。仔細研究了下,發現MinGW安裝路徑bin裏沒有mingw32-g++.exe 。可是安裝管理器MinGW Installation Manager裏顯示是安裝過的,仍是嘗試着把gc++再安裝一遍,竟然安裝失敗。只好本身去下載g++相關的文件安裝了。根據安裝管理器的裏g++相關的信息,Google一下。編程

在這個連接:http://www.mingw.org/aggregator/sources/2?page=3 下找到了須要下載的文件,下載後解壓(WinRAR解壓不了,須要下載7zip),把對應的文件拷貝到 MinGW\bin裏,而後在CodeBlock裏編譯,卻是能編譯了,可是有錯誤,在auto那一行提示「 does not name a type」。看來沒有支持到C++11標準。按照資料所說,GCC 4.8.2就很好的支持C++11了,我這裏的GCC是4.9.1版本了,應該會支持到C++11。仍是Google吧,有人說要加`-std=c++11` 或者 `-std=c++0x` 在變量列表。或者調用g++編譯時帶上C++11相關參數‘g++ -std=c++11 decdef.cpp -o decdef’。這樣一來就有點扯淡了,CodeBlock裏來這一套很不方便還彆扭。最終在setting - compiler and debugger- compiler setting - compiler Flag - All categories裏找到一個C++11相關的選項,如圖:windows

到此成功!spa

相關文章
相關標籤/搜索