25

そのため、 2番目のArduinoプロジェクトで説明されているように、EclipseでいくつかのArduinoコードを構築していますが、などのArduinoライブラリを使用するたびにSerial、Eclipseは関数名に下線を付け、解決できないと主張しています。ただし、コードは実際にコンパイルされるので、Eclipseが関数が欠落していると考える理由については少し戸惑っています。この問題を解決する方法について誰かが何か考えを持っているなら、それはありがたいです。よろしくお願いします。

編集:もっと具体的にすべきだったのですが、EclipseはArduinoライブラリ内のメソッドに下線を引いています。したがって、を使用するSerial.println("hello");と、下線が引かprintln()れ、解決できないと主張します。その後、正常にコンパイルされ、arduinoボードにアップロードされたときにメソッドが機能します。

EDIT2:エラーが見つかりました。CファイルでいくつかのC ++関数を使用しようとしていたのですが、eclipseはそれを気に入らなかったのです。名前を.cppに変更すると、すべての赤が消えました;)ご協力いただきありがとうございます。

4

9 に答える 9

41

Eclipseは、構成に応じて、ビルドセットアップからインデックスへのパスをプルする場合としない場合があります。ほとんどの場合、そうではありません...ビルドのセットアップは問題なく、おそらく手動でビルドできるため、正しくビルドされています。

CDTインデクサー(コードの補完、F3宣言のジャンプなど、これらすべてにかなり下線が引かれている場所を決定するためのエンジン)は、多くの場合、Makefileを解析して、どこを見ればよいかを知るのに十分なほど賢くありません。ヘッダーとソース用。その情報を手動でEclipseに通知する必要があります。

[プロジェクトのプロパティ]->[C/C++一般]->[パスとシンボル]に移動します。

これに投入する必要のある作業量は、環境によって大きく異なります。この外部ライブラリだけが頭痛の種である場合は、おそらくそのライブラリのパスを追加してインデックスを再作成する必要があります。

プロジェクトを右クリックして、[インデックス]->[再構築]を選択します

于 2012-05-11T15:42:01.417 に答える
8

手始めに、下線は何色ですか?黄色は警告であることを意味し、赤はエラーであることを意味するため、これは違いを生みます(重大、ほとんどの状況では構築されません)。

次に、[問題]タブを調べて、実際のエラーがあるかどうかを確認する必要があります。そこに何もない場合、それは確かに正しくコンパイルされました。

ここで、元の質問に戻ります。構築しているプロジェクトのタイプによっては、このタイプの動作はそれほど珍しいことではありません。Eclipseは、特定のプロジェクトのインデックス作成をうまく行っていないようです。コマンドラインから「makeall」を実行すると(これは事実上、ビルド中にEclipseが実行することです)、すべてのコードが解決され、正常にビルドされる可能性があります。

ただし、Eclipseは、すべてのソースコードにインデックスを付け、変数/関数の定義と宣言を解決するために、別の別個のツールを使用します。これは文字通り、右手が何をしているのかわからない左手の場合です。

于 2012-05-11T15:34:44.430 に答える
6

以下の解決策は私のために働きました:右クリックを使用してプロジェクトをクリックします。次に:プロパティ-> C /C++一般->パスとシンボル->シンボル->GNUC++。 この問題が発生した場合、ほぼ確実に記号はまったくありません。値が「201402L」のシンボル「__cplusplus」を追加します。この後:「プロジェクト」->「インデックス」->「再構築」を右クリックします。これ で完了です。

于 2017-09-09T21:53:07.057 に答える
1

私はフォルダを含めていました

プロジェクトのプロパティ->C/C++一般->パスとシンボル->インクルード

それらを削除すると、赤い下線が消えました。つまり、ビルドとIDEが同期しています。

于 2013-12-30T18:47:40.370 に答える
1

シンボルを解決するとき、CDTインデクサーは、コンパイル単位に実際に含まれているヘッダーファイルに関係なく、すべてのヘッダーファイルを考慮するようです。Eclipse Bugzillaに提出された対応するバグレポートがあります:https ://bugs.eclipse.org/bugs/show_bug.cgi?id = 439553

于 2014-07-15T20:35:30.947 に答える
1

私の場合、問題は、コンパイル方言の下のプロジェクトプロパティの言語標準フィールドに「-std = c++17」フラグを追加したことが原因でした。その後、ビルドはエラーで合格しましたが、プログラムは正常に実行されていました。したがって、Index>Rebuildのトリックですべてが解決されました。

于 2020-04-07T19:10:11.603 に答える
0

私も同じ問題を抱えていました。 インデックス->再構築は役に立ちませんでした。main.cppに行#include <avr/iom1280.h>を追加し、 [インデックス]->[再構築]の下線を非表示にしたとき。それから私は線を削除し、まだインダーラインなしで投影します。#include <avr/iom1280.h>

iom1280.hコントローラの名前に置き換えます。利用可能な名前については、「avr \ include \avr\」フォルダーを参照してください

于 2014-03-24T11:13:32.203 に答える
0

EclipseはJavaの場合ほどC++では機能しませんが、メニューバーの[再構築]を押すと問題について警告するはずです。

それを試して、問題が解決するかどうかを確認してください。

于 2016-02-21T22:21:03.533 に答える
0

構成で何かを変更した場合(たとえば、notepad++を使用して*.cprojectファイルで編集する場合)、以下のオプションが役立ちます。 構成のビルド->すべてをクリーンアップしてからインデックス作成->再構築

于 2020-05-06T04:57:13.717 に答える