在 Ubuntu 14.04 上安装旧版 gcc(3.4.3)(目前安装的是 4.8)

在 Ubuntu 14.04 上安装旧版 gcc(3.4.3)(目前安装的是 4.8)

我已经安装了 gcc 4.8,但还需要安装 gcc 3.4.3。我已遵循以下步骤:

  1. 从 gcc.parentingamerica.com/releases 下载 gcc 3.4.3。
  2. 提取了焦油。
  3. 。/配置
  4. 制作

然后它会抛出这个错误:http://paste.ubuntu.com/24807240/

请问有人能指出哪里出了问题以及如何在安装后要求 gcc 使用旧版本?

操作系统:Ubuntu 14.04 LTS,64位

答案1

运行后检查当前版本 gcc -v

接下来,您要安装以前的版本。

  1. 为了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新的存储库将可用。

接下来,安装所需的编译器。为了实现互操作性,我通常会安装相同版本gccg++。对于一般用途,建议这样做。

因此,

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

  1. 为当前目的(构建应用程序)选择编译器

安装所需的编译器后,可以简单地在编译器之间切换。这可以通过更新应用程序的备选版本列表来实现。为此,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

  1. 如果您想保留已安装的替代编译器。那么只需更改为自动模式,即update-alternative选项 0。
  2. 如果要删除替代编译器,请像下面这样删除编译器,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

不可能拥有同一个包的两个版本,因为它们会是冲突的文件,例如:当您尝试更新其中一个包时会遇到麻烦,因为它们会放在同一个位置。

话虽如此,您可以选择将程序版本降级为旧版本,具体操作如下:

  1. 打开终端仿真器并输入apt-cache showpkg <package-name>将打印的可用版本列表
  2. 然后输入sudo apt-get install <package-name>=<package-version-number>安装你喜欢的版本
  3. 输入apt-mark hold <package-name>这将阻止软件包更新
  4. 如果你有任何问题man apt请打开命令手册

相关内容