我正在使用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
使用旧版本?
答案 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