24

Ubuntu の Eclipse 3.5.2 Galileo で CDT を使用しています。

Eclipse のインデクサーが機能しないことがあります。つまりctrl、関数をクリックすると、 と表示されますCould not find symbol in index。また、F3 ボタンをクリックすると、同じエラー メッセージが表示されます。実際にはほとんどの場所で機能しておらず、機能する場所はごくわずかです。

File メニューの下に Indexing 用のメニュー項目がリストされている Eclipse の他のバージョンを見たことがあります。File->Indexer->Rebuild... と同じですが、私の File メニューには、Indexer 用のメニュー項目がありません。

Eclipse の他のリリースを使用するか、何か不足している唯一の方法はありますか? これに関するポインタは役に立ちます。

4

13 に答える 13

9

解析するコードを含むパスを追加するには、次の手順に従います。
1. プロジェクトを右クリックします。
2. [プロパティ] を選択します
。 3. [C/C++ 一般] に移動します。 4. [
パスとシンボル] に移動し
ます。

コードを再解析するには、次の手順に従います。
1. プロジェクトを右クリックします
。 2. インデックスを選択します
。 3. リビルド します。

これがうまくいかない場合は、運が悪いです。c++ は解析が非常に難しい言語です。

于 2012-07-06T07:07:23.810 に答える
4

次のコマンドを実行すると、インデックスをクリアできると思います。

rm .metadata/.plugins/org.eclipse.jdt.core/*.index

そして、Eclipseを再起動します。次に、インデックスを再構築します。

これはJavaプロジェクトでうまくいきましたが、すべての(ほとんどの?)プロジェクトタイプで同じインデックスだと思います。

于 2016-08-04T19:17:28.867 に答える
2
  1. プロジェクトを右クリックします。
  2. プロジェクトを選択New->Convertします。C++構成を選択します。そして次へ
  3. インデクサーはすべてのファイルのインデックス作成を開始します。
于 2020-01-18T06:55:18.147 に答える
0

私のC++ ARM Cross GCCプロジェクトで同じ問題に遭遇しました。Makefile と GNU ARM Embedded Toolchain を備えた Ubuntu Docker イメージを使用してプロジェクトをビルドし、Windows で開発しています。

私の場合、未解決のシンボルを取り除く解決策は、次の 2 つの部分に分けることができます。


  1. CDT Arm Cross GCC 組み込みコンパイラ設定には、コンパイラへのパスがありませんでした。

コンパイラへのProject Properties -> C/C++ General -> Preprocessor Include Paths -> Providers(tab)パスを指定する必要があります。

GNU ARM Embedded Toolchainを使用して、 Command to get compiler specs: I currently useのエントリは次のとおりです。

C:\GNU_Arm_Embedded_Toolchain\9-2020-q2-update\bin\arm-none-eabi-g++.exe ${FLAGS} ${cross_toolchain_flags} -E -P -v -dD "${INPUTS}"

CDT Arm Cross GCC 組み込みコンパイラの設定

注: はい、Docker イメージで使用しているものと同じツールチェーンを Windows マシンにインストールしています。

呼び出しが正しいことを確認するには、コンソール ビューで [割り当て] コンソールにチェックマークを付けます。これにより、コンソールに詳細な出力が提供されます。また、Entriesタブで、CDT Arm Cross GCC Built-in Compiler Settingsを展開すると、インクルードと含まれているシンボルが表示されます。


  1. Project Properties -> C/C++ General -> Paths and Symbolsメニューに記号がありません。

Makefile に定義があるので、ここにも MCU の定義を追加するのを忘れていました。


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

于 2020-11-13T14:46:08.780 に答える