[distcc] Can't compile C++ code

Martin Pool mbp at sourcefrog.net
Fri Jul 10 03:57:55 GMT 2009


2009/7/10 Crístian Viana <cristiandeives at gmail.com>:
> Hi everyone,
>
> I'm trying to use distcc to compile C++ code but I can't make it work. The
> objects are compiled, but the linking process doesn't find the standard
> libraries.
>
> After looking at the logs, I found out distcc calls "cc" to compile my code,
> even when it's C++. and that's the reason (I think) the linking doesn't
> work. If I run "make CC=cc", it doesn't work (that's locally, no distcc
> involved). So, if distcc calls "cc" behind the scenes, I think it won't work
> either.
>
> Thanks for any help!

Try using CC='distcc g++' or add -xc++ to the compiler options.

> Why doesn't distcc uses "cc" to C code and "c++" to C++ code (or
> gcc/g++)? What can I do to make this work? I've already tried using
> symlinks, appending the masquerade directory in the PATH, but I've got no
> success.

In general I think running

  gcc -c thing.cc

will compile it correctly, because the filename (and then the
explicitly given language option) have higher priority than the name
you used for the compiler.  The only exception as I recall, is if you
want a file thing.c compiled as C++ without giving an option to say
so.

If distcc is run as, say

  distcc -o prog thing.o wibble.o

how's it supposed to know you want them linked as C++, and if run as

  distcc -c thing.c

how's it supposed to know you want it compiled as C++?

-- 
Martin <http://launchpad.net/~mbp/>


More information about the distcc mailing list