2016-07-27 23:21 GMT+08:00 Paul Smith <p...@mad-scientist.net>:
> On Wed, 2016-07-27 at 21:39 +0800, Lei Zhang wrote:
>> The problem is, somehow Make defaults CXX to g++ instead of c++, so
>> my solution doesn't work. While CC already defaults to cc, is there
>> any specific reason for CXX not to default to c++?
>
> The POSIX spec defines that "cc" be a C compiler, and that the CC make
> macro be set to it (actually the newer POSIX specs require it be set to
> "c99"; that should be fixed in GNU make).
>
> There's no requirement for a C++ compiler on a POSIX system, and no
> default setting for the CXX variable (in fact that variable isn't
> defined in POSIX).
>
> So, make just uses "g++" by default.  I seem to recall that back in the
> early days of GCC, there was no "c++" installed and only "g++".

Thanks for the explanation. But does it break anything if Make
defaults CXX to c++?

Actually the GNU make shipped in macOS defaults CXX to c++. I guess
they made some modifications to it. That makes sense because macOS has
already ditched gcc in favor of clang as the default compiler.

And last time I tested CMake, it also defaults its CMAKE_CXX_COMPILER to c++.

> If you want a specific C++ compiler, you should set CXX to that value.

Yes, that works. But wouldn't it be better if GNU make just works out
of the box on systems without gcc/g++ (like modern FreeBSD)?


Lei

_______________________________________________
Bug-make mailing list
Bug-make@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-make

Reply via email to