我正在运行 centOS 6.3,它附带 gcc 4.4.6,并且我使用安装了 gcc 4.6.3这些说明。
但当我输入时,gcc -v
它仍然显示 gcc 4.4 是我正在使用的版本。较新的版本位于 /opt/gcc-4.6.3 下。
当我运行make
命令时,是否必须指定路径才能使用较新的 gcc?如果是这样,我该怎么做,或者我可以用新版本完全替换旧版本吗?提前致谢。
答案1
您可以make
通过设置环境变量来判断 C 编译使用哪个程序CC
,CXX
对于 C++ 也是如此。 (假设您使用默认规则或至少复制它们。如果您使用 gcc 的显式可执行名称编写 Makefile,则这将不起作用。)否则,请将类似以下内容放入您的.profile
:
export CC=/opt/gcc-4.6.3/<path to cc> CXX=/opt/gcc-4.6.3/<path to g++>
您只需将 /opt/gcc-4.6.3/bin (如果这是可执行文件所在的位置)添加到您的 PATH 中就可以了。
答案2
首先感谢rici的回答,他的方法有效,但我只是找到了一个更适合我的方法。
首先,我将旧的 gcc 保存在不同的名称下,以防出现问题:
mv /usr/bin/gcc /usr/bin/gcc_old
mv /usr/bin/g++ /usr/bin/g++_old
然后我将我的新构建链接到 gcc 并复制一些重要的内容:
ln -s -f /opt/gcc-4.6.3/bin/gcc /usr/bin/gcc
ln -s -f /opt/gcc-4.6.3/bin/g++ /usr/bin/g++
cp /opt/gcc-4.6.3/lib64/libstdc++.so.6.0.16 /usr/lib64/.
mv /usr/lib64/libstdc++.so.6 /usr/lib64/libstdc++.so.6.bak
ln -s -f /usr/lib64/libstdc++.so.6.0.16 /usr/lib64/libstdc++.so.6
感谢来自 hiphop Facebook git 团队的 Jacky Wei 的帮助。