gcc-4.8
是从 build-essential 安装的。
我以前都是从源代码gcc-4.8
构建的gcc-4.7.4
,并将 4.7 版本放在一个名为/AntonProj1
我已经能够将符号链接从默认的 gcc 更改为内置/AntonProj1
的
rm /usr/bin/gcc
ln -s /AntonProj1/bin/gcc /usr/bin/gcc
因此,虽然我可以通过执行以下操作找到正确的版本(4.7.4) ,但当我询问时gcc-v
我仍然链接到/usr/bin/gcc
which gcc
当我尝试类似的事情时:
ln -s /AntonProj1/bin/gcc /AntonProj1/tmp/gcc
我无法再获得正确的版本,并且当我询问时-v
它仍然在查找(它实际上会抛出)/usr/bin/gcc
which gcc
bash: /usr/bin/gcc: No such file or directory
例如,我如何建立一个链接,/AntonProj1/tmp/gcc
以便我可以使用gcc
命令使用我自己的构建(gcc-4.7.4
)而不是默认构建进行编译?
答案1
这是我在提出问题时按照自己期望的方式解决问题的方法。我不确定这是否是最好的方法;但目前这种方法有效:
设置符号链接:
删除现有链接:
rm /usr/bin/gcc
rm /usr/bin/g++
更改默认可执行文件的名称,因为我想要运行命令gcc
和g++
:
mv /AntonProj1/bin/gcc /AntonProj1/bin/gcc-4.7.4
mv /AntonProj1/bin/g++ /AntonProj1/bin/g++-4.7.4
设置新的符号链接:
ln -s /AntonProj1/bin/gcc-4.7.4 /AntonProj1/bin/gcc
ls -s /AntonProj1/bin/g++-4.7.5 /AntonProj1/bin/g++
设置 PATH 内容:
export "PATH+=:/AntonProj1/bin"
虽然我不确定我设置路径的方法是否理想(肯定不是,因为我必须将路径添加到我想要运行gcc
或g++
从中运行的任何目录),但这种简单的导出会将正确的路径附加到已经设置的路径的末尾...我可以想象在 profile.d 或类似的东西中进行设置;但是,就我的目的而言,这样就没问题了。