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

时间:2010-05-31 14:45:38

标签: c gcc scons

在我的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)

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

我有办法替换/usr/bin/gcc并使gcc44 默认编译器不使用符号链接/usr/bin/gcc44?< / p>

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

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

其他信息

我必须使用SConsmake替代)和它不让我指定用于gcc的二进制文件。

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

3 个答案:

答案 0 :(得分:14)

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

  2. 请参阅http://old.nabble.com/Choosing-compiler-td4675207.html

  3. 从那起:

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

    或者,根据this question的答案,

    cc = env['gcc44']
    

答案 1 :(得分:7)

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

CC=gcc44 CXX=g++44 scons

就是这样!

答案 2 :(得分:1)

我尝试过的一种方法是:

alias cc='/usr/bin/gcc44' 

alias gcc='/usr/bin/gcc44' 

取决于您是使用 cc 还是 gcc 来编译代码。

您可以在需要使用cc / gcc时运行上述命令,也可以添加以上行〜/ .bashrc / etc / bashrc 文件。

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