CDT で Eclipse Juno を使用して、カスタム makefile で C++ プロジェクトを開発しています。私はC++ 11機能も使用しています。これは、SOのアドバイスに従ってEclipseのパーサーで作業する必要がありました。
問題は、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 の問題ではありません)。エラーとして。[]
at()
これがうまくいかないのは普通ですか?はいの場合、特にテンプレート ベースのコンテナーのアシスト/修正をオフにする方法はありますか?
編集
また、c++ 11 サポートを無効にしようとしましたが、そうすれば問題はなくなりますが、もちろん c++ 11 の型と構文は認識されません。
編集2
2 つ目のプロジェクトをインポートし、まったく同じ設定を入力したところ、このプロジェクトでは解析が機能しました。唯一の違いは、プロジェクトのレイアウトです (メイクファイルの場所が異なります)。しかし、最初のプロジェクトを削除して再インポートしても、まだ機能しません。