我正在使用最新版本的 Ubuntu,它附带 gcc 4.4.5 版本。我需要重新编译一个不是我编写的程序,该程序只能使用旧版本的 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
使用旧版本?
Make 使用一些标准变量来确定使用哪些工具,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