2016-05-24 20 views
1

私は自分の問題を解決するために無駄に努力しました。どんな助けでも大歓迎です。特定の.cppファイルがコンパイルされないのはなぜですか?

私は少し前にIDEなしでコーディングを始めるためにMingwをインストールしました。私はC++と私がコンパイルしていないファイルを学ぼうとしています。このファイルは、Visual Studio 2015で正常にコンパイルしていますが、cmd内でコンパイルするために使用する標準のg ++​​コマンドでは正常にコンパイルできないオンラインコースの一部である.cppファイルです。ここで

はコードです:私がコンパイルしようとすると

#include <cstdio> 
using namespace std; 

int main(int argc, char ** argv) 
{ 
    int ia[] = { 1, 2, 3, 4, 5 }; 
    for(auto i : ia) { 
     printf("i is %d\n", i); 
    } 
    return 0; 
} 

、コマンドプロンプトで次の値を返します。

 
cpp112.cpp: In function 'int main(int, char**)': 
cpp112.cpp:9:15: error: 'i' does not name a type 
    for(auto i : ia) { 
      ^

私はそれが私のコンパイラが古くなったことがあることと考えていたが、ありませんMinGWインストールGUIを開いたときに更新が表示されました。

また、ご協力いただきありがとうございます。私はアイデアがありません。

+5

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

+1

この質問はかなりよく書かれています。それは問題を説明する最小の完全な例とそれに伴う明確なエラーメッセージを持っています。 OPが直面していた問題を誰でも簡単に見ることができます。 – Flexo

答えて

6

使用した構文はC++ 11標準に含まれていたので、g ++コンパイラのバージョンでサポートされています(すべての現代のコンパイラでサポートしています)、C++ 11標準を使用するように指定しました。例えば。

g++ cpp122.cpp -std=c++11 

C++ 14の機能では、-std = C++ 14を試すこともできます。

バージョン6.1より前のg ++​​では、デフォルトモードは-std = gnu ++ 98でした。 6.1のデフォルトモードは-std=gnu++14

関連する問題