使用SCons更改Linux中的默认C编译器

在我的Linux平台上,我有几个版本的gcc

usr/bin我有:

  • gcc34
  • gcc44
  • gcc

以下是一些输出:

 $ 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) 

我需要使用4.4版本的gcc但默认似乎是4.1版本。

我有办法替换/usr/bin/gcc并使gcc44成为默认编译器而不使用符号链接/usr/bin/gcc44吗?

我不能使用符号链接的原因是因为我的代码必须使用mock在RPM包中提供。 mock从头开始创建一个最小的linux安装,并在编译我的代码之前安装指定的依赖项。 我不能自定义这个“最小安装”。

理想情况下,完美的解决方案是安装一个官方RPM软件包,用gcc44替换gcc作为默认编译器。 有这样的套餐吗? 这甚至可能/好吗?

附加信息

我必须使用SCons (替代品)并且它不允许我指定用于gcc的二进制文件。

我也会接受任何答案,告诉我如何在我的SConstruct文件中指定gcc二进制文件。

  1. 一种方法是从源代码编译和安装gcc

  2. 见http://old.nabble.com/Choosing-compiler-td4675207.html

由此:

 env = Environment() env.Replace(CC = "my_cc_compiler") 

或者,根据这个问题的答案,

 cc = env['gcc44'] 

这在过去已经很久了,但我只是想我会添加我找到的解决方案,这不需要更改SConscript文件。 它对我很有用,因为我需要在centos 5下构建v8,所以它可能对其他人也有用。

 CC=gcc44 CXX=g++44 scons 

而已!

我尝试过的一种方法是:

 alias cc='/usr/bin/gcc44' 

要么

 alias gcc='/usr/bin/gcc44' 

这取决于你是否使用ccgcc来编译代码。

你可以在任何时候使用cc / gcc运行上面的命令,或者你可以添加上面的行是〜/ .bashrc/ etc / bashrc文件。

注意:添加别名后必须执行source ~/.bashrcsource /etc/bashrc