2012-07-10 12 views
6

私はEclipse Juno C++(ビルドID:20120614-1722)を持っています。コンパイルの呼び出し引数を-std = C++ 11または-std = C++ 0x命令で設定しようとしていますが、以下のコードをコンパイルしています。 Eclipse JUNOには(少なくともMacでは)「ツール設定」がないので、「C/C++のビルド - >設定 - >ツール設定」に行くことはできません。私のコンパイラは、私が得たGCC 4.8.0Eclipse Juno C++をstd = C++で設定できません11

#include <iostream> 
#include <sstream> 
#include <vector> 
using namespace std; 
int main(void) { 
    vector<string> v = {"a","b","c"}; 
    for(string s: v){ 
     cout << s << endl; 
    } 
    return 0; 
} 

です:

HelloWorld.cpp:16:33: error: could not convert ‘{"a", "b", "c"}’ from ‘<brace-enclosed initializer list>’ to ‘std::vector<std::basic_string<char> >’ 
HelloWorld.cpp:17:16: error: range-based ‘for’ loops are not allowed in C++98 mode 
+2

使用している実際の_compiler_および標準ライブラリは何ですか? – ildjarn

+0

GCC 4.8.0コンパイラ –

+1

g ++のオプションを設定していることを確認しましたか(ツールチェーンの別の部分ではありません)? :C/C++のビルド - >設定 - >ツール設定 - > GCC C++コンパイラ - >その他 - >その他のフラグ。最後に-std = C++ 0xと入力します。 –

答えて

5

あなたがかもしれない、私はこの回答で説明する手順は、次のとおりです。 Eclipse CDT C++11/C++0x support

一つの可能​​性は、あなたのオプションであったこと、ですツールチェーンの間違った部分に適用されます。プロジェクトを作成すると、あなたの代わりにGNU Autotool群

-1

理由は、私はちょうどまったく同じ問題に直面しました。プロジェクトにカスタム "makefile" (*.mk)があるかどうかを確認してください。その "makefile"がある場合は、以下を "makefile"に入れてコンパイルしてください。

"LOCAL_CFLAGS:= -fexceptions -std = C++ 0xの-std = C++ 11"

PS:LOCAL_CFLAGSはあなたが「xxx>のその他の中に置くことができますコンパイラフラグです"そして、率直に言って、あなたのプロジェクトにカスタム "メークファイル"がない場合、私はそれを解決する方法を知らない。しかし、Eclipse Junoは、文字通り、上記の人の道を持っていません。

+0

autotoolsを必要とし、それを正しく設定したい場合は、コードはコンパイルされますが、eclipseは構文エラーを表示します。オートツールを使用しないことを選択しても問題は解決されません。 –

0

の実行可能ファイルを選択する必要がありますので、ツールの設定が表示されていない

関連する問題