问题
On my Linux platform, I have several versions of gcc
.
Under usr/bin
I have:
gcc34
gcc44
gcc
Here are some outputs:
$ gcc --version
gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-48)
$ gcc44 --version
gcc44 (GCC) 4.4.0 20090514 (Red Hat 4.4.0-6)
I need to use the 4.4 version of gcc
however the default seems to the 4.1 one.
I there a way to replace /usr/bin/gcc
and make gcc44
the default compiler not using a symlink to /usr/bin/gcc44
?
The reason why I can't use a symlink is because my code will have to be shipped in a RPM package using mock
. mock
creates a minimal linux installation from scratch and just install the specified dependencies before compiling my code in it. I cannot customize this "minimal installation".
Ideally, the perfect solution would be to install an official RPM package that replaces gcc
with gcc44
as the default compiler. Is there such a package ? Is this even possible/good ?
Additional information
I have to use SCons (a make
alternative) and it doesn't let me specify the binary to use for gcc
.
I will also accept any answer that will tell me how to specify the gcc
binary in my SConstruct
file.
回答1:
One way is to compile and install
gcc
from source.See http://old.nabble.com/Choosing-compiler-td4675207.html
From that:
env = Environment()
env.Replace(CC = "my_cc_compiler")
Or, as per the answer to this question,
cc = env['gcc44']
回答2:
This is a long way in the past now, but I just thought I'd add the solution I found, which doesn't require changing the SConscript file. It was useful for me as I need to build v8 under centos 5, so possibly it may be useful for someone else too.
CC=gcc44 CXX=g++44 scons
That's it!
回答3:
One way which I have tried out and which works is:
alias cc='/usr/bin/gcc44'
or
alias gcc='/usr/bin/gcc44'
which depends on if you use cc or gcc to compile the code.
you can run the above commands whenever you want to use cc/gcc or you can add the above line is ~/.bashrc or /etc/bashrc file.
Note: You must execute source ~/.bashrc
or source /etc/bashrc
after adding the alias'
来源:https://stackoverflow.com/questions/2944251/changing-default-c-compiler-in-linux-using-scons