Makefile プロジェクトを作成しました (新規 -> C プロジェクト -> Makefile プロジェクト)。そして、正しくコンパイルされます。
しかし、Eclipse は makefile からいくつかの重要なオプションをインポートしないため、構文チェッカーが正しく機能していません。-I (ヘッダー フォルダー) など。
この問題を解決するには?
Eclipse は、メイクファイルによって生成されたビルド出力を使用して、コンパイル フラグ、インクルード パス、事前定義されたマクロなどを解析します。ビルド システムが実行する各コマンドをエコーすることを期待します。
つまり、の出力が次のようになっている場合は機能しません。make
[CC] foo.o
[CC] bar.o
[LD] baz
次のような生のコマンドを出力することを確認してください。
gcc -Ipath/to/include -DFOO=1 -O2 ... -o foo.o -c foo.c
gcc -Ipath/to/include ... -o bar.o -c bar.c
ld foo.o bar.o -o baz
一部のビルド ツールには、冗長モードを有効にするオプションが用意されています ( などmake V=1
)。ただし、Make はデフォルトで実行されたコマンドをエコーするため、手書きの makefile は通常問題ありません。
この場合、Eclipse はビルド オプション (path/to/include
または などFOO=1
) を認識し、それらを使用して C/C++ インデクサーをセットアップできます。
プロジェクトの構成:
その後、完全なビルド ログが表示されるように、 Eclipse 内からフレッシュ ビルドを実行する必要があります ( Clean Project、次にBuild Project )。
この機能はかなり壊れやすく、壊れることもあります... 通常、Project -> Index -> Rebuildを使用してインデックスをフラッシュすると役立ちます。