GNU MakeのCPPFLAGSとCXXFLAGSの違いは何ですか?
CPPFLAGS
は[〜#〜] c [〜#〜]のフラグ用であると想定されています P再Pプロセッサ; CXXFLAGS
は、C++コンパイラのフラグ用です。
Makeのデフォルトの規則(私のマシンでは、とにかく)はCPPFLAGS
をほぼすべてに渡します。CFLAGS
はCのコンパイルとリンク時にのみ渡され、CXXFLAGS
はC++のコンパイルおよびリンク時に渡されます。
デフォルトでは、CPPFLAGS
がCプリプロセッサに渡され、CXXFLAGS
がC++コンパイラに渡されます。
GNU Make Manual は、このような質問に適したリソースです( Implicit Variables を参照)。
CPPFLAGSはCプリプロセッサ用で、CXXFLAGSはC++コンパイラ用です。
here を参照してください。
デフォルトでは、それらは何かに設定されています。
実際には、すべてのプロジェクトが何をするのかを知る必要があります。 makeに組み込まれているこれらのデフォルトは、実質的に誰も使用しません。たとえば、「Cプリプロセッサへのフラグ」を意味するCPPFLAGSに依存している場合、関心のあるプロジェクトは「C++コンパイラへのフラグ」代わりに。 CFLAGSフラグはC++コンパイル行に渡されますか?時々。常にではない。などなど.