2

受講しているクラスに Eclipse Juno CDT を使用していますが、インクルード ファイルで見つかった型を解決できないと表示されており、これらは私が作成したヘッダーではありません。

私が書いたプログラムは、コマンド ラインから g++ を介して実行した場合とまったく同じようにコンパイルおよび実行されます。問題は、文字列のような基本的な型さえ認識しないため、Eclipse でデバッグできないことです。また、コード補完はありません。インクルードファイルは問題なく見つかります。それらを開いて内容を確認できますが、それでもタイプは解決されません。

同様の問題を抱えている人のための多くの提案を見てきましたが、それらはすべてインクルードファイルを見つけられないことが判明しました。これは私の問題ではありません. 助言がありますか?

4

2 に答える 2

0

たぶん、型は名前空間にあり、あなたはそれらを修飾していません(そしてusing宣言を使用していません)。

于 2012-09-18T00:23:12.747 に答える
0

ヘッダー自体に適切なディレクトリが含まれている可能性があります。私のシステムでは、次のようになります:/usr/include/c++/4.4.6/

ただし、マクロ_GLIBCXX_BEGIN_NAMESPACEの定義を含むディレクトリがない可能性があります。このマクロ定義がないと、eclipseはstlタイプがstd名前空間にあることを認識しません。私のシステムでは、このマクロ定義はメインのc++ディレクトリの下にあります。インクルードリストに次のパスを追加してみてください。

/usr/include/c++/4.4.6/x86_64-redhat-linux
/usr/include/c++/4.4.6/x86_64-redhat-linux/bits

RedHatを使用していない場合は、同様のものを探してください。/ usr / includeに移動し、次のgrepを実行して、必要なマクロ定義を持つヘッダーを探すことができます。

grep -R -P "define\\s*_GLIBCXX_BEGIN_NAMESPACE\(" .
于 2013-03-05T21:53:39.407 に答える