Eclipse
とともにCDT
MinGW
をインストールしました。すべての環境変数が設定、インクルードなどされます。HelloWorldを実行してみましたが、すべてが正常であるようです。
コンピューターに以前持っていたC
プロジェクトをロードしようとしましたが、すべてが正常にロードされるようですが、NULL
シンボルで次のエラーが表示されます。
Symbol 'NULL' could not be resolved
洞察はありますか?ありがとう!
NULLは通常stddef.hで定義されています。このファイルは通常、stdlib.hおよびstdio.hにも含まれています。
そして、あなたは常にこれを行うことができます:
#ifndef NULL
#define NULL ((void *) 0)
#endif
ボブが述べたように、インデックスを再構築するだけでバグを修正します
私も同じ問題を抱えていました。メイクファイルは正常に動作していましたが、Eclipse CDTビューからあなたのようなエラーが出ていました。
現在のプロジェクトを閉じ、新しい「既存のコードを使用したMakefileプロジェクト」を開き、プロジェクトの適切な場所のソースの場所を指定しました。この後、私はそれをチェックしました:プロジェクトを右クリック/ C++一般/パスとシンボル/ Gnu C++ /インクルードディレクトリは空ではなく、プロジェクトの正しいパスを含みます。
次に、インデックスを再構築しました(右クリック/インデックス/再構築)。
また、Eclipse CDT 8ではなく、Eclipse CDT 7を使用します。CDT8では、メイクファイルは問題なくても、解決できないGUIからのコンパイルエラーが発生することがあるためです。
NULLはstddef.h
で定義されていますが、stddef.h
はxxx/include/linux
ではなくxxx/include
に定義されています
-> MingWのxxx/include
を追加しても、NULL
が見つからない
mingWのinclude/linux
パスをプロジェクトに追加します
(1)xscaleクロスコンパイラのinclude/linux
パスの例:/opt/crosscompile/xscale/gcc-4.6.0-glibc-2.9/arm-xscale-linux-gnueabi/sysroot/usr/include/linux
(2)私の投稿: buntu Eclipse:シンボル「NULL」を解決できませんでした
私はこのようなエラーを修正したばかりで、他に誰もこの解決策を見つけられなかったので投稿したいと思いました。 AVR GCCコンパイラでstdlibがNULLを___need_NULLとして宣言していることがわかりました。これにより、Eclipse IDEでエラーが発生しました。ただし、エラーはCoden Analysisが異常を検出せず、シンボルが見つからなかったために発生したために発生しました。 [全般]-> [起動/シャットダウン]の[設定]でCodenをオフにするか、C/C++コード分析でその動作を変更できます。
これは、他の人が経験している時々ランダムな性質を説明するかもしれません
[〜#〜] null [〜#〜]を定義するヘッダーファイルを追加していないと思います。 stdlib.h(#includeステートメント)を追加します。 NULLマクロを定義します。
また、「シンボルエルフマジックを解決できませんでした」という同様の問題が発生し、エルフヘッダーが既に含まれています。この問題はライブラリキャッシュが原因であると考えられます。ソフトウェアを再起動すると問題を解決できるからです。他の人の助けをありがとう。
CDTが標準ライブラリのヘッダーの解決に失敗することがあることがわかったので、ここで答えを探していました。バグを再現する理由と方法はまだわかりません。 CDTを再起動するだけですべてが解決します。
同じエラーが発生していたので、プロジェクトを右クリックし、インデックスタブにカーソルを合わせて[再構築]をクリックして修正しました。その後、エラーがなくなりました。
上記の提案のどれも私を助けませんでした。ファイルを開くたびに、exclipseは多数のエラーを報告します。
最後に役立ったのは、すべてのファイルを閉じてからバグを手動で削除し([問題]ウィンドウのエラーリストを右クリックして)、インデックスを再構築することです。
C:\MinWG\lib
をEclipseのライブラリパスに追加するだけです。