new 3.4.6 with old 3.3.5

Ian Lance Taylor
Mon Jun 7 03:37:00 GMT 2010

Shane M Dwyer <> writes:

> I have downloaded  gcc-3.4.6.tar.gz  and have installed it (configure, make, 
> make install) on a smoothwall 3 express development box
> It currently has 3.3.5 on it.
> This has taken some considerable time to install and read a lot of 
> documentation. I now wish to use 3.4.6 as the sole compiler, however 3.5.5 
> still exists and has its infrastructure, environment etc in place, so that 
> when I try to compile any new sources I download, these sources still find 
> and use 3.3.5.
> I cant find anything on how to construct the environment so that 3.4.6 is the 
> preferred and only complier.

Unfortunately it kind of depends on how 3.3.5 is installed, which kind
of depends on your operating system (I don't know what smoothwall 3
express is).  The easy approach is to just build and install 3.4.6 and
change your PATH so that gcc 3.4.6 appears first.  Or, you can
configure with the option --prefix=/usr; on many systems that will
effectively replace the existing gcc.  It won't remove all vestiges of
the existing gcc, though.

> to cut a long story short I have spent about 20 hrs trying to compile ntop and 
> all its dependencies, and it keeps falling over. Over the next 20 or so hours 
> I then tried RRDtool according to the instructions here 
> After fixing heaps of PATH, environment variables, moving and renaming ***.h. 
> lib***.so.1 etc , I finally got to cairo.
>>From which I always get the annoying error when make cairo-1.8.0 which appears 
> to be a compiling error, of which i know nothing about or what to do about 
> it.
> ************************************************
> gcc: cannot specify -o with -c or -S and multiple compilations
> make[3]: *** [cairo-analysis-surface.lo] Error 1
> make[3]: Leaving directory `/usr/incoming/cairo-1.8.0/src'
> make[2]: *** [all] Error 2
> make[2]: Leaving directory `/usr/incoming/cairo-1.8.0/src'
> make[1]: *** [all-recursive] Error 1
> make[1]: Leaving directory `/usr/incoming/cairo-1.8.0'
> make: *** [all] Error 2
> ******************************************************8
> Its the first line above that bothers me, as i have no idea where the -o -c 
> and -S options are .

We might be able to tell you more if you showed us the actual command
which is failing.  However, the error message is accurate.  The -c or
-S option means that gcc is being directed to compile several files at
once.  gcc is happy to do that and will normally generate a separate
output file for each input file, with the output file name based on
the input file name.  However using a -o option means that the
Makefile is trying to tell gcc the exact output file name to use.
That doesn't make sense when asking gcc to create several output
files, so gcc gives an error.

> So I figured a later compiler might help.

A new version of gcc is unlikely to help this particular problem.  It
sounds more like a problem with the cairo build system.  You should
probably ask on some mailing list devoted to cairo.


More information about the Gcc-help mailing list