web-dev-qa-db-ja.com

Eclipse CDT:stlヘッダーの未解決のインクルード

Eclipseを使用してソースを編集しようとしていますが、C++ Builderでコンパイルされていますが、Unresolved inclusionの問題が発生します。

たとえば、次のようなコードです。

#include <vector>

EclipseIDEでUnresolved inclusion: <vector>エラーが発生します。 C++ Builderには確かにvectorファイルがなく、代わりにコンパイラによって使用されるvector.hがあります。

Eclipse IDEを記述しても、エラーは発生しません

#include <vector.h>

Eclipseにvector.hが表示されたときに#include <vector>を使用するように指示するにはどうすればよいですか?

15
rmflow

これにより、Eclipseの「未解決の包含」エラーを回避できました。

私の場合、コンピューター(Mac)でC++ベクターヘッダーの場所を見つける必要がありました。

find /usr/local -name vector -print

フォルダ「/usr/include/c++/4.2.1」に正しいインクルードの場所が見つかりました。次に、プロジェクトのEclipse設定を次のように設定します。

Project->Properties->C/C++ General->Paths and Symbols->GNU C++->(Add)->"/usr/include/c++/4.2.1"

私はC++ Builderを使用していませんが、私の解決策はあなたの問題の一部に対処するかもしれません。

26

「CDTGCC組み込みコンパイラ設定」を使用することもできます。プロジェクトのプロパティ> C/C++一般>プリプロセッサインクルードパス>プロバイダータブに移動し、そうでない場合は「CDTGCC組み込みコンパイラ設定」をチェックします。

他の解決策(インクルードパスで遊ぶなど)は、タイプ 'string'に対しては機能しませんでしたが、これで修正されました。

5
Virtual

memoryとmemory.hは同じソースを参照していません。

1つはc用で、もう1つはc ++用です。

プロジェクト設定にソースを含める権利がありますか?

2
djfoxmccloud

Windowsでは、Eclipse CDT Oxygenを使用すると、ここで説明するソリューションはどれも機能しませんでした(「プロバイダー」-「CDTGCC組み込みコンパイラ設定」を含む)。私のために働くものは次のとおりです。

  • 特に次のパッケージを使用してCygwinをインストールします(これにすべてが厳密に必要なわけではないかもしれません):
    • libgcc1
    • cygwin32-gcc-core、cygwin32-gcc-g ++
    • gcc-g ++
    • mingw64-x86_64-gcc-core、mingw64-x86_64-gcc-g ++
  • プロジェクトのプロパティ:
    • 「C/C++ビルド」-「ツールチェーンエディター」に移動し、「現在のツールチェーン」として「CygwinGCC」を選択します。 Project Properties - Tool Chain Editor
    • [C/C++ General]-[Preprocessor Include Paths、Macors etc.]に移動し、[Providers]タブで次を選択します:
      • 「CDTユーザー設定エントリ」(手動で参照したGoogle Testなどの他のインクルードに必要です)。
      • 「CDTGCC組み込みコンパイラ設定Cygwin」。 Project Properties -Providers
2