web-dev-qa-db-ja.com

Eclipseインデックスを消去します。コードと同期していません

Linux上のリンクされたリソースを介してC++コードでEclipseを使用しています。コード分​​析インデックスが破損しているようです(Goto定義はカーソルを定義の近くに置きますが、定義の上に置きません)。リソースを更新しても修正されず、Eclipseも再起動しません。

インデックスをフラッシュして再構築する方法はありますか?

60
Vincent Scheib

プロジェクトを右クリックして、[インデックス]サブメニューの下に移動し、[再構築]、[変更されたファイルで更新]、または[すべてのファイルを更新]を選択します。

これらの3つのオプションの違いはわかりませんが、「更新されたファイルで更新」または「すべてのファイルを更新」のいずれかが通常それを修正します。

また、すでにこれを実行しているはずですが、Eclipse CDTの最新バージョンを実行していることを確認してください。現在のバージョンでは、以前のバージョンよりもはるかに信頼性の高いインデックスが作成されているようです。

76
Josh Kelley

http://dev.Eclipse.org/mhonarc/lists/cdt-dev/msg10390.html から、「再構築」、「変更されたファイルで更新」、または「すべてのファイルを複製」の違い:

再構築:プロジェクト全体でのみ機能します。インデックスをクリアし、ファイルを最初からインデックス付けします。キャンセルすると、空のインデックスまたは部分的なインデックスが残ります。

変更されたファイルで更新:リソース選択で動作します。タイムスタンプまたはscanner-configが変更されたかどうかを個々のファイルで確認し、変更されたファイルのインデックスを更新します。

すべてのファイルを更新:リソース選択で機能します。インデックス内の選択されたファイルを更新します。インデックスはクリアされません。操作をキャンセルしても安全です。

35
Stephen

プロジェクトproperties -> C++ general -> Indexerに移動します。

  • 'project specific settings'でこれを行い、
    (または'Configure Workspace Settings...'上)。
  • 'Enable Indexer'の選択を解除Applyを押します。
  • 'Enable Indexer'を選択Applyを押します。

これにより、インデックスが完全に消去され、再構築されます。

19
TheAnvil

上記のどちらも私にとってはうまくいかず(Eclipse Indigo)、インデックスはまだ壊れており、適切に再構築することを拒否しました。これを適用するまで:

http://slsam2.blogspot.com/2012/02/Eclipse-cdt-index-not-working.html

リンクされた投稿の重要な部分は次のとおりです。

Eclipseは、プロジェクトをC++プロジェクトとして扱わなくなりました。メニューを選択File/New/Convert to a C/C++ project。ソースコードのインデックス作成には時間がかかります。

私は今でも、Eclipseがどうしてそのように足元で自分自身を制御不能に撃つことができるのか疑問に思っています。追加のパッケージをインストールするとトリガーされる可能性があると思います。私の場合はおそらくJavaScriptがサポートされています。

12
Pavel Zdenek

削除のみ .metadata.plugins\org.Eclipse.cdt.coreの下の。pdomファイルが役立ちます。Neon.2をNeon.3にアップグレードした後、インデクサーをねじ込みましたこれは問題を解決するようです。 (このコメントはすでに上にありますが、そこまで確認することはできません)。

3
Shay Perlstein

Eclipse実行可能ファイルのコマンドラインに-cleanを追加しようとしましたか?

1
Chris Dennett

Eclipseは、プロジェクトをC++プロジェクトとして扱わなくなりました。メニューのファイル/新規/ C/C++プロジェクトに変換を選択します。ソースコードのインデックス作成には時間がかかります。私のために働いた

0
kibrom

私はジョシュ・ケリーズとmmmmmsの答えを運なしで試すことから始めましたが、最終的にインクルードパスをチェックすることで修正しました。

それらを表示する1つの方法は、プロジェクトエクスプローラーで、プロジェクトを展開すると、「Includes」というエントリがあるはずです。その内部で、各インクルードパスの小さな黄色の警告三角形を確認します。その三角形が存在する場合、Eclipseはおそらくパスを認識しません。

インクルードパスは、プロジェクトエクスプローラーの[プロジェクト]を右クリックして編集し、[プロパティ]-> [C/C++全般]-> [パスとシンボル]-> [インクルード]を選択します。 。

Assembly、Gnu C、Gnu C++の3つの言語オプションがあります。パス(Gnu C++など)の追加を開始する前に、正しいものを選択してください。すべてのパスを追加したら、-> Apply-> Okで、必要に応じてインデックスを再構築します。

誤ったワークスペースパスは、MyProject/MyProject/folderのはずだったときにMyProject/MyProject/folderのように見えました。

私にとって、「問題」ビューは、インデックスを再構築した後でも、常に更新に時間がかかります。エラーがまだ存在することを確認するには、問題のエントリをダブルクリックして、Eclipseが問題のファイルを開く/リロードするようにします。これは、私が「問題」ビューを更新するためにしばしば必要と思われます。

それが台無しになったのがEclipseか私のscmかは本当にわかりません。とにかく、それが誰かを助けることを願っています!

Lunaを使用し、外部メイクファイルを使用してビルドします。

0
Schaki