13

複数のプロジェクトを含むワークスペースがあり、それらはすべて問題なくコンパイルされます。ただし、一部のプロジェクトでは、未解決のインクルードが原因で、未解決のシンボルに関する多くの警告がエディターに表示されます。ほとんどは、ワークスペース内の他のプロジェクトまたはサード パーティ ライブラリのヘッダーです。

グーグルはこれがインデクサーの問題であることを示唆していますが、それを修正する方法についての首尾一貫した説明は見つかりませんでした-これらのライブラリへのパスをインデクサーのPATHに追加する必要があると思いますが、オプションが表示されませんそうします(私はJunoを使用しています)。

CDT のインデクサーを構成する方法を教えてください。

また、2 つのプロジェクトで STL ヘッダーの未解決のインクルード警告が表示されます。一部の STL ヘッダーは解決されていますが、他のヘッダーは解決されておらず、リストは 2 つのプロジェクト間で同じではないようです (1 つは vector と iostream などを検出しますが、sstream や string は検出しません。もう 1 つは iostream も検出しません)。 .

関連する可能性があります: これらは C++ プロジェクトですが、すべてのファイル拡張子は .c です。GCC C Compiler コマンドを 'g++' に変更してコンパイルしましたが、それに対処するためにインデクサーの設定にも何かをする必要があるのでしょうか?

4

5 に答える 5

8

私のプロジェクトがビルドされるという同様の問題がありましたが、Eclipse Kepler に未解決のインクルードが表示されました。

私の場合、既存の ARM プロジェクトを利用して、別のツール チェーンを使用するカスタム ビルド構成を作成しました。新しいビルド構成にはすべて正しいインクルードが含まれていたため、プロジェクトは正しくビルドされましたが、インデクサーはそれを取得していませんでした。

アクティブなビルド構成を使用するようにインデクサーを設定することで修正しました。ウィンドウ->設定->C/C++->インデクサーで、「インデクサーのビルド構成」というラベルの付いたセクションの下で、「アクティブなビルド構成を使用する」を選択し、それをクリアしました。

于 2014-01-07T19:48:48.740 に答える
7

わかりましたので、この問題を修正しました。

  1. ワークスペース内の他のプロジェクトおよびサードパーティ ライブラリからの未解決のインクルードは、他のプロジェクトを参照として追加することで解決されました。インクルード リストに場所を追加したため、コンパイラはどこを探すべきかを知っていたと思いますが、インデクサーは知りませんでした (おそらく、ヘッダーを 1 回しか処理しない Eclipse が原因でしょうか?)

  2. STL からの未解決のインクルード 実際には C++ だったすべての .c ファイルを .cpp に変更して修正しました。コンパイル コマンドを 'g++' に変更するだけでは、プロジェクトを C++ として扱うようにインデクサーに指示するには明らかに不十分でした。

1) の場合、未解決のインクルード エラーを削除するために、最初に参照プロジェクトのインデックスをクリーン/再構築する必要がありました。

于 2012-08-31T09:41:26.817 に答える
5

ワークスペースでプロジェクトを右クリックし、Properties-> C++ General->を選択Paths and Symbolsしてから、特定のコンパイラのインクルードとシンボルを追加し、利用可能なタブで必要なライブラリやその他のものを追加します。そのヒットの後、Applyインデックスの再作成が開始され、問題は解決するはずです。

于 2012-08-30T10:44:09.147 に答える
0

すべての回答は役に立ちますが、私の問題を解決する別のトリックがありました。コンパイラとは対照的に、インデクサーはインクルード パスのサブディレクトリを処理しないことがわかりました。そのため、ヘッダー ファイルをインクルードするときは、より具体的にする必要があります。


#include "サブディレクトリ\include_2.h"

于 2016-12-30T11:28:45.047 に答える