2016-07-06 21 views
-1

++グラムでシンプルなソースコードをコンパイルなぜ私は奇妙なエラーを得た:なぜg ++は簡単なコードをコンパイルできませんか?

#include <vector> 
int main(int argc, const char* argv[]){ 
    std::vector<int> a{1,2,3}; 
    return 0; 
} 

コンパイラの出力が

g++ -c -Wall main.cpp 
main.cpp:4:20: error: expected ';' at end of declaration 
    std::vector<int> a{1,2,3}; 
        ^
         ; 
1 error generated. 

私はXcodeでそれをコンパイルすると、すべてが正常に動作しています。あなたのGCCコンパイラのバージョンが、(おそらく、デフォルトで現在の標準をサポートしています)新しいバージョンにアップグレードする必要があり、そのフラグをサポートしていない場合

+0

g ++のどのバージョンですか?再生可能なものを教えてください。 [最小完全で実証可能な例](http://stackoverflow.com/help/mcve)を投稿してください。それでもコンパイラフラグに '-std = C++ 11'または' -std = C++ 0x'を追加してみてください – WhiZTiM

+1

C++ 11以降でコンパイルされていない可能性があります – Tas

+0

コンパイラはC++ 11? '-std = C++ 11'をコンパイルフラグに追加してみてください。 – drglove

答えて

3

> g++ -std=c++11 -c -Wall main.cpp 
> # ^^^^^^^^^^ 

にあなたのコンパイラのコマンドを変更

+1

明らかに、フラグ-std = gnu ++ 11を追加するコメントのアドバイスが問題を解決します。私は-std = gnu ++ 14がデフォルトのフラグでなければならないので混乱しましたが、g ++の古いバージョンがあるようです。 アドバイスをいただきありがとうございます。 –

関連する問題