Eclipse CDTのLinux GCCツールチェーンでC ++標準ライブラリヘッダーを解決する方法


12

Ubuntu 12.04 LTSでは、Eclipse CDTプラグインをインストールし、新しいhello worldプロジェクトを開いてすべてをテストしました。プロジェクトを作成していたときに、唯一のツールチェーンを選択しました:「Linux GCC」

ただし、プロジェクトが作成されると、

#include<iostream>
#include<cstdlb>

未解決です。このように、とのラインcoutとは、endl使用することはできません、それは見つけることができませんstd

using namespace std; また、問題を引き起こしています。

名前空間#includeを使用してコードをサポートするために、認識された標準ライブラリヘッダーのディレクティブを取得するにはどうすればよいstdですか?


これらのエラーは、Project> を実行した後でも持続しますBuild Allか?
エリアケイガン

2
これは馬鹿げた質問ですが、CプロジェクトではなくC ++プロジェクトとして具体的に新しいプロジェクトを作成しましたか?
バズ

回答:


4

私と同じ問題が発生した場合、プロジェクトはビルドされますが、コード補完/コードの強調表示が失敗すると思いますか?役に立つかもしれないメモを見つけました。私がやったことは次のとおりです。

  • プロジェクト->プロパティ

  • C / C ++全般

  • パスとシンボル

  • 適切な言語を選択してください

  • [追加]をクリックして、コンパイラバージョン固有のディレクトリを追加します

言語「GNU C ++」の場合:

  /usr/include
  /usr/include/c++/4.6
  /usr/include/c++/4.6/bits
  /usr/include/i386-linux-gnu
  /usr/include/i386-linux-gnu/bits
  /usr/include/c++/4.6/debug
  /usr/include/c++/4.6/i686-linux-gnu
  /usr/include/c++/4.6/i686-linux-gnu/bits

「GNU C」の場合:

  /usr/include
  /usr/include/i386-linux-gnu
  /usr/include/i386-linux-gnu/bits

TBH、上記のすべてのディレクトリが実際に必要であるとは思いません(おそらく「ビット」ディレクトリを削除できます)が、その時点では上記のリストが機能しました。

現在、eclipse.orgのEclipse Indigo(バージョン3.7.2)を使用しています。正しいインクルードディレクトリが自動的に検出されて追加されます。リストは私にとっては異なります:

/usr/include/c++/4.6
/usr/include/c++/4.6/i686-linux-gnu
/usr/include/c++/4.6/backward
/usr/lib/gcc/i686-linux-gnu/4.6/include
/usr/local/include
/usr/lib/gcc/i686-linux-gnu/4.6/include-fixed
/usr/include/i386-linux-gnu
/usr/include

明らかに、システムに実際に存在するインクルードディレクトリのみを追加してください;-)


まあ、これは私にとってはうまくいきません-実際、私はDebian Stretch 64ビットを使用しています。しかし、あなたの提案を私のプラットフォームに適合させました。
アインポクラム
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.