2012-10-31 5 views
6

CDTでEclipse Junoを使用して、カスタムmakefileでC++プロジェクトを開発しています。私はC++ 11の機能も使用しています。これはEclipseのパーサで、ここでアドバイスを受けて作業する必要があります。Eclipse CDTはSTLコンテナ内の要素のメソッドを解析できません

問題は、EclipseがSTLコンテナ要素でアクセスされるメソッドまたはフィールドを解析できないことです。例:

mainapp.h

typedef struct _PlayerCalibrationData { 
    [...] 
    std::string getSamplesStr() 
    { 
      [...] 
    } 
} PlayerCalibrationData; 

std::vector<MainApp::PlayerCalibrationData> m_calibrationData; 

mainapp.cpp

m_calibrationData[0].getSamplesStr(); 

getSamplesStr()がメッセージ「メソッド 'getSamplesStr' で、エラーとして下線とマークされますができませんでした解決されるべきである。

しかし、私がEclipseかコマンドラインから呼び出すかどうかにかかわらず、コンパイラは不平を言っていません。また

は、私がm_calibrationData.入力すると、すべてのベクトルの方法は(それが含まEclipseがベクトルを見つけていないの問題ではないのIE)コンテンツ・アシストを経由してポップアップし、しかし、すぐに私は[]at()を経由して要素にアクセスすると、コンテンツアシスト静かで、手動で入力されたものはエラーとしてマークされます。

これは正常ではありませんか?はいの場合、テンプレートベースのコンテナのアシスト/修正を特にオフにする方法はありますか?

EDIT

私は今も、C++ 11のサポートを無効にすることを試みたが、私は、問題が消えることを行う場合 - しかし、その後の進路C++ 11種類と、構文が認識されません。

EDIT 2

私は正確に同じ設定を入力し、第二のプロジェクトをインポートして、このプロジェクトの解析のための作品。唯一の違いは、プロジェクトレイアウト(makefileの異なる場所)です。しかし、最初のプロジェクトを削除して再インポートしても、それはまだ機能しません。

+1

問題は[this](https://bugs.kde.org/show_bug.cgi?id=299124)と同じである可能性が高いですが、それは日食ではありません。 cdtのバグを投稿します –

+1

CDTが 'std :: vector'の' operator [] 'の戻り値を適切に解析していないようです。また、 'foo.push_back(m_calibrationData [0])'のような文に対して "無効な引数"のようなエラーが出ますか? [このバグ](https://bugs.eclipse.org/bugs/show_bug.cgi?id=349849)を参照してください。 –

答えて

5

これは私の仕事:

を "プロジェクト名" - >右クリック - >プロパティ:

C/C++一般 - >プリプロセッサは、マクロなど、パスを含めます - >という名前のタブに切り替え、「プロバイダ」:「設定」「Release」を選択します(とその後「デバッグ」)を

  • スイッチオフすべてのプロバイダを、ちょうど選ぶ「CDT GCC作りつけのため

    • コンパイラの設定プロジェクト間で」

    • チェックを外し、 『共有設定のエントリ(グローバル・プロバイダー)コマンド』で

    • 『のコンパイラの仕様を取得するには:引用符なし『-std = C++ 11の』追加』(引用符も使えます)

    • が、これはCDT mingw-w64 gcc 4.7.2と最新の公式日食、 Win7のx64の家庭や職場で、両方のmashinesに私の作品インデックス

    を再構築

  • オプションを適用し、閉じヒットsourceforgeのmingwbuildsプロジェクトから

  • +0

    いいですが、私にとってはうまくいかないでしょう。私は初期の無限の再構築ループ問題を解決するためにすべてのビルダーを無効にしました。 – Eric

    +0

    Ugg、そのok今、この答えには何かがあります。=) – Eric