我已经安装了 gcc 4.8,但还需要安装 gcc 3.4.3。我已遵循以下步骤:
- 从 gcc.parentingamerica.com/releases 下载 gcc 3.4.3。
- 提取了焦油。
- 。/配置
- 制作
然后它会抛出这个错误:http://paste.ubuntu.com/24807240/
请问有人能指出哪里出了问题以及如何在安装后要求 gcc 使用旧版本?
操作系统:Ubuntu 14.04 LTS,64位
答案1
运行后检查当前版本 gcc -v
。
接下来,您要安装以前的版本。
- 为了
gcc-3.4
由于此版本在较旧的 Ubuntu 版本中可用,因此我们需要有适合该版本的存储库。通过一些搜索,我发现它们是以下内容,必须将它们添加到/etc/apt/sources.list
deb http://snapshot.debian.org/archive/debian/20070730T000000Z/ lenny main
deb-src http://snapshot.debian.org/archive/debian/20070730T000000Z/ lenny main
deb http://snapshot.debian.org/archive/debian-security/20070730T000000Z/ lenny/updates main
deb-src http://snapshot.debian.org/archive/debian-security/20070730T000000Z/ lenny/updates main
完成后sudo apt-get update
新的存储库将可用。
接下来,安装所需的编译器。为了实现互操作性,我通常会安装相同版本gcc
的g++
。对于一般用途,建议这样做。
因此,
sudo apt-get install gcc-3.4 g++-3.4
2. 检查可用的编译器
在这个阶段,我们将有两组编译器(分别用于g++
和gcc
)。这些可以通过 来检查dpkg --list | grep compiler
,
dpkg --list | grep compiler
dpkg --list | grep compile
ii g++ 4:4.8.2-1ubuntu6 amd64 GNU C++ compiler
ii g++-3.4 3.4.6-5 amd64 The GNU C++ compiler
ii g++-4.8 4.8.4-2ubuntu1~14.04.1 amd64 GNU C++ compiler
ii gcc 4:4.8.2-1ubuntu6 amd64 GNU C compiler
ii gcc-3.4 3.4.6-5 amd64 The GNU C compiler
ii gcc-4.8 4.8.4-2ubuntu1~14.04.1 amd64 GNU C compiler
ii hardening-includes 2.5ubuntu2.1 all Makefile for enabling compiler flags for security hardening
ii libllvm3.6:amd64 1:3.6-2ubuntu1~trusty1 amd64 Modular compiler and toolchain technologies, runtime library
ii libxkbcommon0:amd64 0.4.1-0ubuntu1 amd64 library interface to the XKB compiler - shared library
ii pkg-config 0.26-1ubuntu4 amd64 manage compile and link flags for libraries
如果需要,您可以检查安装位置。
重要的是两组编译器的位置,可以通过以下方式列出:
ls -lh /usr/bin/gcc*
lrwxrwxrwx 1 root root 7 5月 13 2016 /usr/bin/gcc -> gcc-4.8
-rwxr-xr-x 1 root root 91K 1月 4 2007 /usr/bin/gcc-3.4
-rwxr-xr-x 1 root root 758K 1月 27 2016 /usr/bin/gcc-4.8
和
ls -lh /usr/bin/g++*
lrwxrwxrwx 1 root root 7 4月 8 2014 /usr/bin/g++ -> g++-4.8
-rwxr-xr-x 1 root root 93K 1月 4 2007 /usr/bin/g++-3.4
-rwxr-xr-x 1 root root 758K 1月 27 2016 /usr/bin/g++-4.8
- 为当前目的(构建应用程序)选择编译器
安装所需的编译器后,可以简单地在编译器之间切换。这可以通过更新应用程序的备选版本列表来实现。为此,update-alternative
必须使用某些参数运行该命令。
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 60 --slave /usr/bin/g++ g++ /usr/bin/g++-4.8
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-3.4 40 --slave /usr/bin/g++ g++ /usr/bin/g++-3.4
sudo update-alternatives --config gcc
这将链接g++
到gcc
,并且仅在更改时gcc
才会g++
自动更改。
然后,无论何时您想要更改编译器,请输入以下命令:
sudo update-alternatives --config gcc
然后,询问用户选择哪个编译器。
sudo update-alternatives --config gcc
There are 2 choices for the alternative gcc (providing /usr/bin/gcc).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/bin/gcc-4.8 60 auto mode
1 /usr/bin/gcc-3.4 40 manual mode
2 /usr/bin/gcc-4.8 60 manual mode
Press enter to keep the current choice[*], or type selection number:
在这里,您可以按下键(0,1)然后按回车键进行选择。可以通过以下方式检查当前选定版本中的更改gcc -v
删除update-alternative
- 如果您想保留已安装的替代编译器。那么只需更改为自动模式,即
update-alternative
选项 0。 - 如果要删除替代编译器,请像下面这样删除编译器,
sudo apt-get remove gcc-3.4 g++-3.4
然后运行
sudo update-alternatives --config gcc
该程序update-alternatives
将查找链接并发现它们缺失,并将自动删除替代方案,返回到其他可用选项。
sudo update-alternatives --config gcc
update-alternatives: warning: alternative /usr/bin/gcc-3.4 (part of link group gcc) doesn't exist; removing from list of alternatives
There is only one alternative in link group gcc (providing /usr/bin/gcc): /usr/bin/gcc-4.8
Nothing to configure.
答案2
不可能拥有同一个包的两个版本,因为它们会是冲突的文件,例如:当您尝试更新其中一个包时会遇到麻烦,因为它们会放在同一个位置。
话虽如此,您可以选择将程序版本降级为旧版本,具体操作如下:
- 打开终端仿真器并输入
apt-cache showpkg <package-name>
将打印的可用版本列表 - 然后输入
sudo apt-get install <package-name>=<package-version-number>
安装你喜欢的版本 - 输入
apt-mark hold <package-name>
这将阻止软件包更新 - 如果你有任何问题
man apt
请打开命令手册