0

CPPFLAGS に関するドキュメントを読みました。まもなく、CPPFLAGS がパラメーターをコンパイラーに渡すために使用されることがわかりました。makefile での CPPFLAGS の使用例を以下に示します。

gcc $(CPPFLAGS) main.c -o main.o

メイクを実行

make CPPFLAGS=-I../header

特別な CPPFLAGS テキストとは何ですか? 「FOO」などの他のテキストと交換できます。FOO 変数と CPPFLAGS 変数の違いは何ですか? すべての CPPFLAGS テキストを FOO テキストに置き換えます。ビルドは再び成功し、何も変わりません。

実際に解決する必要がある主な問題。多くのメイクファイルがあります。これらのメイクファイルには、インクルード CPPFLAGS 変数はありません。makefile を変更せずにコンパイラ オプションを渡す方法はありますか。

ありがとう。

4

1 に答える 1

1

特別な CPPFLAGS テキストとは何ですか? 「FOO」などの他のテキストと交換できます

について特別なことが 3 つありますCPPFLAGS

  1. これは、多くのツールが従う規則です。最も顕著なのは GNU autoconf/automake です。
  2. GNU Make は、多くのターゲット タイプを構築するための暗黙のルールを提供します。これらの暗黙のルールは、C および C++ ソースからCPPFLAGSコンパイルするときに変数を使用します。.oこれらのルールは、必要に応じて独自のルールに置き換えることができます。
  3. CPPFLAGSプリプロセッサ フラグに使用する場合は、最小の驚きの原則に従います。

これらの makefile にはインクルード CPPFLAGS 変数はありません

CPPFLAGS上記の暗黙のルールが使用されているため、メイクファイルにの出現がないことを意味している可能性があります。

于 2012-10-05T11:06:55.060 に答える