web-dev-qa-db-ja.com

Eclipse for C ++の「文字列を解決できませんでした」エラー(Eclipseは標準ライブラリを解決できません)

Eclipseにはc ++用の次のコードがあり、stringcoutに下線が引かれており、解決できないと言っています。

#include <string>
#include <iostream>

using namespace std;


int main()
{
    string s;
    s = "hello world";
    cout << s;
    return 0;

}

誰もがその理由を知っていますか?

編集:スクリーンショット

編集:皆に感謝する解決策を見つけました(回答を参照)。

enter image description here

50

問題は、 minGWとMSY Sの両方をインストールしてPATHに追加する必要があることでした。

この問題は修正されました。

6

私もこの問題を抱えています。

Eclipseがすべてのインクルードヘッダーを見つけることができなかったためだとわかりました。

簡単な修正:

この簡単で迅速な解決策は問題を解決する可能性があります(たとえば、Eclipseプロジェクトをディスク上の別の場所に移動し、Eclipseに再度インポートした場合)、そうでない場合は次のセクションにジャンプします(詳細な修正)。

  1. プロジェクト>プロパティ> C/C++ Build> Tool Chain Editorに移動します
  2. 現在のツールチェーンを他の値に変更し、適用をクリックします
  3. 現在のツールチェーンを元の値に設定し、適用をクリックします
  4. プロジェクトをコンパイルする

詳細な修正:

続行する前に、ツールチェーンが正しくインストールされているかどうかを確認してください。

  1. 新しいワークスペースに切り替えます。
  2. .cprojectファイルと「.settings」フォルダーを削除します
  3. プロジェクトをMakefileプロジェクトとしてインポートします(または、CDTビルドシステムが必要な場合は新規作成します)
  4. プロジェクト->プロパティ-> C/C++ビルド->ツールチェーンエディターに移動します。ツールチェーンを選択します。
  5. プロジェクト->インデックス->再構築を押します
  6. 問題が解決しない場合は、システム言語を英語に変更して、上記の手順をもう一度試してください。

古い回答:

この回答は古くなっています。上記のいずれも役に立たない場合は続行します

前の手順で問題が解決しない場合は、手動でディレクトリをインクルードする必要があります(ただし、推奨されません)

  1. 「プロジェクト>インデックス>未解決のインクルードを検索」を右クリックして、未解決のヘッダーをすべて検索します。
  2. 「find/usr/include/-name vector -print」を使用して場所を検索します
  3. インクルードフォルダーパスを「プロジェクト>プロパティ> C++ General/Path and Symbols/C++」を右クリックしてください
  4. 「プロジェクト>インデックス>再構築を右クリック」を実行します
  5. 未解決のシンボルが残っている場合は、手順1から開始します。
73
Vanuan

Eclipseで環境が適切にセットアップされ、インクルードへのパスが認識されるようにする必要があります。それ以外の場合、見つからないものとして下線が引かれます。

4
user195488

私はVanuanによって与えられた関連する質問に答えました( Eclipse CDT:未解決のstlヘッダーのインクルード )、これは私の答えです:

「CDT GCCビルトインコンパイラー設定」を使用することもできます。 [プロジェクトプロパティ]> [C/C++全般]> [プリプロセッサインクルードパス]> [プロバイダー]タブに移動し、[CDT GCCビルトインコンパイラー設定]がオンになっていない場合はオンにします。

他のソリューション(インクルードパスを使用するなど)は、タイプ 'string'に対して機能しませんでしたが、これで解決しました。

4
Virtual

同じ問題がありました。インクルードパスの追加は、std :: string以外のすべてで機能します。

Mingw-Toolchainで多くのシステムヘッダーファイル* .tccに気付きました

Preferences> C/C++/File Typesで、ファイルタイプ* .tccを「C++ Header File」として追加しました。現在、std :: stringは、内部インデックスとコードアナライザーから解決できます。おそらくこれはデフォルトでEclipse CDTに追加されます。

これが誰かに役立つことを願っています...

PS:Eclipse Mars、mingw gcc 4.8.1、Own Makefileを使用していますが、Eclipse Makefilebuilderは使用していません。

2
Gabor

同じ問題がありました。 Properties/C/C++ Build/ToolChainEditorのCurrentBuilderを別の値に変更して適用します。その後、再び元の値に変更します。できます。

1
Ebru Kaya Kanat

AOSP(clang)でこの問題が発生しました。

追加 external\libcxx\includeを含めて_LIBCPP_COMPILER_CLANG記号へ

0
lukee