0

Makefile プロジェクトを作成しました (新規 -> C プロジェクト -> Makefile プロジェクト)。そして、正しくコンパイルされます。

しかし、Eclipse は makefile からいくつかの重要なオプションをインポートしないため、構文チェッカーが正しく機能していません。-I (ヘッダー フォルダー) など。

この問題を解決するには?

4

1 に答える 1

1

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++ インデクサーをセットアップできます。

関連するプロジェクト設定

プロジェクトの構成:

  • C/C++ Build -> Discovery Options で、次のエントリを確認します。
    • パスとシンボルの自動検出
    • 検出プロファイル:ファイルごとの GCC スキャナー情報プロファイル
    • ビルド出力スキャナー情報の検出を有効にする

その後、完全なビルド ログが表示されるように、 Eclipse 内からフレッシュ ビルドを実行する必要があります ( Clean Project、次にBuild Project )。

この機能はかなり壊れやすく、壊れることもあります... 通常、Project -> Index -> Rebuildを使用してインデックスをフラッシュすると役立ちます。

于 2012-10-03T23:08:04.253 に答える