我正在使用 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
创建符号链接(symbolic link)。但是当我调用 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 在你路径中的所有其他选项之前(这就是为什么它对你不起作用,当前目录不在路径中,所以符号链接(symbolic link)你放在那里搜索时不会考虑)
export PATH=/opt/gcc-4.0.1/bin:$PATH
为了完整性,在您的符号链接(symbolic link)解决方案中,您必须调用 ./gcc
以获得正确的 gcc 实例,但恕我直言,这可能不是最佳解决方案。
HTH
关于linux - 如何在 Linux Ubuntu 上使用 2 个不同版本的 GCC 并强制 MAKE 使用其中之一,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4152283/