如何在Linux Ubuntu上使用2个不同版本的GCC并强制MAKE使用其中一个

时间:2010-11-11 07:43:24

标签: linux gcc compiler-construction ubuntu

我正在使用gcc 4.4.5版本附带的Ubuntu的最新版本。我需要重新编译一个不是由我编写的程序,并且只能使用旧版本的gcc编译,如4.0。我设法配置这个旧版本并在安装过程中使用了前缀,以便我的旧gcc版本在/opt/gcc-4.0.1/bin中。我尝试使用ln -s /opt/gcc-4.0.1/bin/gcc gcc创建符号链接。但是当我调用gcc -v时,我仍然得到结果gcc version 4.4.5。要编译我的程序已经有一个makefile,如果我make,它仍然使用新版本的gcc。我怎么能告诉make使用旧版本?

1 个答案:

答案 0 :(得分:20)

使用一些标准变量来确定使用哪些工具,C编译器变量称为“CC”。您可以直接在Makefile中设置CC变量

CC=/opt/gcc-4.0.1/bin/gcc

如果您单独使用它,或者每个人都有相同的设置,那就没问题。或者您可以在命令行上传递它,如下所示:

make CC=/opt/gcc-4.0.1/bin/gcc

第三个选项是在路径中的其他所有内容之前设置/opt/gcc-4.0.1/bin(这就是为什么它对你不起作用,当前目录不在路径中,所以符号链接你放在那里搜索时不会考虑)

export PATH=/opt/gcc-4.0.1/bin:$PATH

为了完整性,在你的符号链接解决方案中,你必须调用./gcc才能获得正确的gcc实例,但恕我直言,这可能不是最好的解决方案。

HTH