代码之家  ›  专栏  ›  技术社区  ›  ereOn

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

  •  14
  • ereOn  · 技术社区  · 14 年前

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

    usr/bin 我有:

    • gcc34
    • gcc44
    • 海湾合作委员会

    以下是一些输出:

    $ 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版本的 海湾合作委员会 不过,4.1版似乎存在违约。

    我有办法替换 /usr/bin/gcc 并使 GC44 这个 违约 编译程序 不使用符号链接 /usr/bin/gcc44 ?

    我不能使用symlink的原因是因为我的代码必须使用 mock . 嘲弄 从头开始创建最低限度的Linux安装,只需在编译代码之前安装指定的依赖项。我无法自定义这个“最小安装”。

    理想情况下,完美的解决方案是安装一个官方的RPM软件包来替换 海湾合作委员会 具有 GC44 作为 违约 编译程序。有这样的包裹吗?这是可能的/好的吗?

    附加信息

    我必须使用 SCons (A) make 备选方案)和 它不 让我指定要用于的二进制文件 海湾合作委员会 .

    我也会接受任何会告诉我如何指定 海湾合作委员会 我的二进制 SConstruct 文件。

    3 回复  |  直到 6 年前
        1
  •  13
  •   Community kfsone    7 年前
    1. 一种方法是编译和安装 gcc 从源头。

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

    从:

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

    或者,根据对 this question ,

    cc = env['gcc44']
    
        2
  •  8
  •   FatalFlaw    12 年前

    这在过去是很长的路,但我只是想添加我找到的解决方案,这不需要更改sconscript文件。它对我很有用,因为我需要在Centos5下构建V8,所以它可能对其他人也很有用。

    CC=gcc44 CXX=g++44 scons
    

    就是这样!

        3
  •  1
  •   Ashwin Geet D'Sa    6 年前

    我尝试过的一种方法是:

    alias cc='/usr/bin/gcc44' 
    

    alias gcc='/usr/bin/gcc44' 
    

    这取决于你是否使用 复写的副本 海湾合作委员会 编译代码。

    只要您想使用cc/gcc,就可以运行上面的命令,或者您可以添加上面的行 BASHC /ETC/BASHC 文件。

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