我已经在ubuntu 11.04上安装了gcc-3.3/g++-3.3,里面已经有了gcc/g++-4.4。所以在我的系统中,gcc-3.3和4.4都是可用的。我可以随意调用这两个编译器。如果我只是调用命令gcc
,那么就会调用gcc-4.4。要调用gcc-3.3,我必须使用命令gcc-3.3
。
如何将默认编译器更改为gcc-3.3?当我执行gcc
命令时,它应该调用的是gcc-3.3,而不是gcc-4.4。
另外,如何将make文件中的变量CXX修改为gcc-3.3?我希望更改系统中的一个通用全局位置,而不是更改所有make文件。
发布于 2012-02-02 05:01:00
下面是jHackTheRipper对TL;DR crowd的回答的完整示例。:-)在这种情况下,我想在默认为4.6的Ubuntu系统上运行g++-4.5。作为root
apt-get install g++-4.5
update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.6 100
update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.5 50
update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.6 100
update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.5 50
update-alternatives --install /usr/bin/cpp cpp-bin /usr/bin/cpp-4.6 100
update-alternatives --install /usr/bin/cpp cpp-bin /usr/bin/cpp-4.5 50
update-alternatives --set g++ /usr/bin/g++-4.5
update-alternatives --set gcc /usr/bin/gcc-4.5
update-alternatives --set cpp-bin /usr/bin/cpp-4.5
在这里,4.6仍然是默认的(也就是“自动模式”),但我显式地暂时切换到4.5 (手动模式)。要返回到4.6:
update-alternatives --auto g++
update-alternatives --auto gcc
update-alternatives --auto cpp-bin
(请注意,使用cpp-bin
而不仅仅是cpp
。Ubuntu已经有了一个主链接为/lib/cpp
的cpp
替代品。重命名该链接将删除/lib/cpp
链接,这可能会破坏脚本。)
发布于 2014-03-13 07:13:18
This is the great description和分步说明如何创建和管理主备(gcc和g++)备选方案。
简而言之就是:
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.6 60 --slave /usr/bin/g++ g++ /usr/bin/g++-4.6
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.7 40 --slave /usr/bin/g++ g++ /usr/bin/g++-4.7
sudo update-alternatives --config gcc
发布于 2017-05-27 22:02:17
在4.8到6之间,使用所有--slaves
update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 \
10 \
--slave /usr/bin/cc cc /usr/bin/gcc-4.8 \
--slave /usr/bin/c++ c++ /usr/bin/g++-4.8 \
--slave /usr/bin/g++ g++ /usr/bin/g++-4.8 \
--slave /usr/bin/gcov gcov /usr/bin/gcov-4.8 \
--slave /usr/bin/gcov-dump gcov-dump /usr/bin/gcov-dump-4.8 \
--slave /usr/bin/gcov-tool gcov-tool /usr/bin/gcov-tool-4.8 \
--slave /usr/bin/gcc-ar gcc-ar /usr/bin/gcc-ar-4.8 \
--slave /usr/bin/gcc-nm gcc-nm /usr/bin/gcc-nm-4.8 \
--slave /usr/bin/gcc-ranlib gcc-ranlib /usr/bin/gcc-ranlib-4.8
和
update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-6 \
15 \
--slave /usr/bin/cc cc /usr/bin/gcc-6 \
--slave /usr/bin/c++ c++ /usr/bin/g++-6 \
--slave /usr/bin/g++ g++ /usr/bin/g++-6 \
--slave /usr/bin/gcov gcov /usr/bin/gcov-6 \
--slave /usr/bin/gcov-dump gcov-dump /usr/bin/gcov-dump-6 \
--slave /usr/bin/gcov-tool gcov-tool /usr/bin/gcov-tool-6 \
--slave /usr/bin/gcc-ar gcc-ar /usr/bin/gcc-ar-6 \
--slave /usr/bin/gcc-nm gcc-nm /usr/bin/gcc-nm-6 \
--slave /usr/bin/gcc-ranlib gcc-ranlib /usr/bin/gcc-ranlib-6
使用update-alternatives --config gcc
在它们之间切换。
https://stackoverflow.com/questions/7832892
复制相似问题