web-dev-qa-db-ja.com

GNU MakeのCPPFLAGSとCXXFLAGSの違い

GNU MakeのCPPFLAGSとCXXFLAGSの違いは何ですか?

128
Paul Robinson

CPPFLAGS[〜#〜] c [〜#〜]のフラグ用であると想定されています PPプロセッサ; CXXFLAGSは、C++コンパイラのフラグ用です。

Makeのデフォルトの規則(私のマシンでは、とにかく)はCPPFLAGSをほぼすべてに渡します。CFLAGSはCのコンパイルとリンク時にのみ渡され、CXXFLAGSはC++のコンパイルおよびリンク時に渡されます。

196
Kieron

デフォルトでは、CPPFLAGSがCプリプロセッサに渡され、CXXFLAGSがC++コンパイラに渡されます。

GNU Make Manual は、このような質問に適したリソースです( Implicit Variables を参照)。

32
Christoph

CPPFLAGSはCプリプロセッサ用で、CXXFLAGSはC++コンパイラ用です。

here を参照してください。

18
starblue

デフォルトでは、それらは何かに設定されています。

実際には、すべてのプロジェクトが何をするのかを知る必要があります。 makeに組み込まれているこれらのデフォルトは、実質的に誰も使用しません。たとえば、「Cプリプロセッサへのフラグ」を意味するCPPFLAGSに依存している場合、関心のあるプロジェクトは「C++コンパイラへのフラグ」代わりに。 CFLAGSフラグはC++コンパイル行に渡されますか?時々。常にではない。などなど.

0
James Moore