web-dev-qa-db-ja.com

複数の「プロジェクトの作成」を含むC / C ++ソースツリー全体をEclipseでインデックス化するにはどうすればよいですか?

Eclipseでソースコードのインデックスを作成するのに問題があります。私はWindowsでEclipse Heliosを使用していますXP現時点では。

Srcというディレクトリがあります。その中には、次のようないくつかのディレクトリがあります。

 src 
 -include(共通ヘッダー)
 -lib 
 -libIO(このライブラリのソースコード)
 -libGUI(このソースコードライブラリ)
 -pgms 
 -pgm1(このpgmのソースコードとヘッダー)
 -pgm2(このpgmのソースコードとヘッダー)

各リーフには独自のMakefileがあります。 srcにはトップレベルのMakefileはありません。 pgm1は、includeおよびlib/libIOおよびlib/libGUIのファイルをインクルードできます。

基本的に、ツリー内のすべてのリーフにC/C++プロジェクトを設定することなく、Eclipseにsrcディレクトリ全体のインデックスを作成します。これを実現する方法が見つからないようです。

これが私の症状です。私が解決しようとしているもの:

Pgm1 dirのソースを編集するとき、include dirヘッダーファイルで宣言され、lib/libIOにあるソースファイルで定義されている関数を参照します。

ただし、関数の宣言を取得するためにF3を押すと、Eclipseは「インデックスにシンボル 'X'が見つかりませんでした」と表示します。 Eclipseでカーソルの下のメソッドのヘッダー宣言またはソース定義を見つけることができないようです(Javaモジュールは完璧に機能します)。これは可能ですか?

25
Jay

私はここでのコメントのおかげでこれを解決することができました....私は自分のプロジェクトを再作成することになりました。 Importメソッドを使用してCVSからプロジェクトをダウンロードし、New Projectウィザードを使用してダウンロードするように指示しました。 [新しいプロジェクト]ダイアログが表示されたとき、これはC++プロジェクトであり、インデックス作成が正常に機能することを伝えました。

特定のプロジェクトタイプを添付せずにファイルのインデックスを作成できるようにしたいのですが、少なくとも答えは見つかりました。

すべての助けてくれてありがとう。

5
Jay

OPとまったく同じ問題がありましたが、何らかの理由で、使用していたEclipseのメニュー(Helios Service Release 2)が「プロパティに移動-> C/C++全般->パスとシンボル->ソースの場所」ではありませんでした。

私が問題を修正した方法は:

  • c/C++ビューで、一番上のプロジェクト名を右クリックします。
  • メニューで、「新規」->「C++プロジェクト」を選択します。
  • 表示されるウィンドウで、[変換]を選択してから[C++プロジェクト]を選択します。
  • [OK]をクリックしてウィンドウを閉じます。

Eclipseはすぐにインデックス作成を開始します。ソースツリーのサイズによっては時間がかかる場合がありますが、その後インデックス作成が最終的に機能します。

27
MHD

私は同様の状況に直面しました。この方法で解決しました:プロジェクトView-->select Index-->rebuild.でプロジェクトを右クリックします

10
Somabho

Eclipseを終了します。ワークスペースで「.metadata/.plugins/org.Eclipse.cdt.core」に移動し、そこにあるものをすべて削除します。

4
CppChase

プロジェクトエクスプローラーパネルで、インデックスを再作成するプロジェクトを右クリックし、インデックスを選択してから、必要なアクションを選択します

3
user3727512

巨大なプロジェクト、多くのファイル、さらに重要なことに多くの異なるビルドオプションがある場合、異なるフラグの下でのファイルと変数のインデックス作成は常に複雑です。 Indexerオプションをいじって、コード全体を閲覧できるようにします。あなたはそれを見つけることができます:プロジェクトのプロパティ> C/C++ General/Indexer。

「プロジェクト固有の設定を有効にする」を選択できます

次に、プロジェクトに必要なオプションを選択します。特定のビルドでは、「アクティブなビルド構成を使用する」を選択して、ビルドスクリプトで使用されるファイルとマクロのみが考慮されるようにすることができます。または、プロジェクト全体のすべてのソースファイルのインデックスを作成します。

2

私はEclipse Neon 3を使用しています、これが私のために働いたソリューションです:

  • ファイルに行く
  • 新着
  • C/C++ Autotoolsプロジェクトに変換してから、プロジェクトを選択して終了します。

プロジェクトのサイズによって異なりますが、インデックス作成が完了するまでに時間がかかる場合があります。

2
basslo

クラス宣言に未解決のフレンド宣言があると、Eclipse Lunaのインデクサーで問題が発生しました-インデクサーがそのクラスの残りのインデックス付けをスキップし、それへのすべての参照がインデクサーによって未解決として表示されたようです。

解決策:未解決のfriend宣言を削除しました(私の場合、不要になったのはレガシーコードです)。

1
Andreas Lindell

以下を試してください(私のプロジェクトは異なって設定されているので、これがあなたのために働くかどうかわかりません)。

[プロパティ]-> [C/C++全般]-> [パスとシンボル]-> [ソースの場所]に移動します。

そこにソースフォルダーがありますか?

この動作を観察します。ソースフォルダーを追加し、ビルドから除外すると、上記のリストに表示されなくなります。その後、フォルダのインデックスは作成されなくなります。 「ソースの場所」に再追加することで問題が解決します。フォルダーのインデックスが作成されるようになりました。 (意図したとおりに)ビルドから除外されたままです。ソースの場所間で表示されます。

私はそれがバグだと信じています-ビルドからソースフォルダを除外しても、ソースロケーションリストからそれを削除すべきではありません。

0
user443854

Coocox IDE(Eclipse + gcc)では、ファイルメニューの[編集]> [設定]> [C/C++ /インデクサー]> [アクティブなビルド構成に設定されたインデクサーのビルド構成] (Ctrl R)。

0
jim

私は使っている

Eclipse IDE C/C++ Linux開発者向け

バージョン:Helios Service Release 2ビルドID:20110218-0911

上記の提案に従い、さらに、プロジェクトプロパティ->プロジェクト参照を使用して、すべての参照プロジェクト(ワークスペース内)をマークする必要がありました

0
Amir Pauker

以下は、Eclipse Neonで機能しました。新規プロジェクト-> C/C++->既存のコードを使用したMakefileプロジェクト->次へ。次に、コードに移動して、プロジェクトの作成を完了します。インデックス作成が自動的に開始されます。

0
yep

プロジェクトがすでにC/C++に変換されているにもかかわらず、インデックスが機能しない場合は、プロジェクトを右クリックして、インデックスを作成して再構築します。プロジェクトはすぐにインデックス作成を開始します。

0
hegu2212