What's the difference between CPPFLAGS and CXXFLAGS in GNU Make?
CPPFLAGS
is supposed to be for flags for the C PreProcessor; CXXFLAGS
is for flags for the C++ compiler.
The default rules in make (on my machine, at any rate) pass CPPFLAGS
to just about everything, CFLAGS
is only passed when compiling and linking C, and CXXFLAGS
is only passed when compiling and linking C++.
x
is a +
turned on it's side because C++FLAGS
would blow up the compiler. ... I may have arrived to the party late, but that's still better than arriving on time to the wrong party. –
Indefinable CPPFLAGS
is NOT for C Plus Plus but CXXFLAGS
is. –
Jubilation CXX
meant "both C++ and C." –
Maiolica .cpp
, as in mycode.cpp
. I have actually also seen source files with the .cxx
suffix. –
Authorize By default, CPPFLAGS
will be given to the C preprocessor, while CXXFLAGS
will be given to the C++ compiler.
The GNU Make Manual is a good resource for questions like this (see Implicit Variables).
CPPFLAGS are for the C preprocessor, while CXXFLAGS are for the C++ compiler.
See here.
By default, they're set to something.
In practice, you need to know what every single project does. Virtually no one uses those defaults built into make, and if you rely on, for example, CPPFLAGS meaning "flags to the C preprocessor" you'll find that the project you care about has used it to mean "flags to the C++ compiler" instead. And does the CFLAGS flag get passed to C++ compile lines? Sometimes. Not always. Etc, etc, etc.
© 2022 - 2024 — McMap. All rights reserved.
make -p
– Tuba