2015年1月8日 星期四

如何用 Code::Blocks IDE 編譯 C++11 程式

      假設你在 Code::Blocks 中,專案使用的是 g++ 編譯器來編譯,你可以點選專案右鍵後選擇 "Build options..." 然後將 -std=c++11 選項勾選即可編譯 c++11 feature 的程式了。
設定畫面如下:



測試範例程式如下:(來源 C++11 Wiki Range-based_for_loop)

#include <iostream>

using namespace std;

int main()
{
    //Range-based for loop
    int my_array[5] = {1, 2, 3, 4, 5};
    for (auto &x : my_array) {
        cout << x << " ";
    }
    cout << endl;
    return 0;
}

       注意:專案的編譯器設定會被 全域的編譯器設定所覆蓋,假設你在專案中設定 -std=c++11,但在全域編譯器中設定了 -std=c++98,則編譯最後是使用 c++98來編譯程式。 檢查 Build log 你會發現,編譯的指令為 mingw32-g++.exe -Wall -fexceptions -std=c++11 -g -std=c++98 ...。

沒有留言: