如何在Ubuntu 16上安装多个版本的GCC(GCC-3.3)?

如何在Ubuntu 16上安装多个版本的GCC(GCC-3.3)?

我对 Ubuntu 不熟悉,我想安装旧版本(3.3)来gcc编译一些代码。当我尝试使用

sudo apt-get install gcc-3.3

它没有安装。

~$ sudo apt-get install gcc-3.3
sudo: /etc/sudoers.d is world writable
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Note, selecting 'gcc-3.3-hppa64' for regex 'gcc-3.3'
The following packages were automatically installed and are no longer required:
  gfortran-5 libamd2.4.1 libbtf1.2.1 libcamd2.4.1 libccolamd2.9.1
  libcholmod3.0.6 libcsparse3.1.4 libcxsparse3.1.4 libgfortran-5-dev
  libklu1.3.3 libldl2.2.1 libspqr2.0.2 libumfpack5.7.1 openjdk-9-jdk-headless
Use 'sudo apt autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 10 not upgraded.

当我尝试列出 的所有可用版本时gcc

 sudo apt-cache search gcc

它没有列出gcc3.3。如何在 Ubuntu 上安装 gcc 3.3?

我当前的gcc版本是:

~$ gcc --version
gcc (Ubuntu 5.4.0-6ubuntu1~16.04.4) 5.4.0 20160609
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

答案1

从源代码下载、编译并安装 GCC

我通常会得到tar.gz一个;您可以从 gcc.gnu.org 列出的镜像站点之一获取源代码 https://gcc.gnu.org/mirrors.html

tar -xf gcc-3.3.6.tar.gz
./configure --prefix=/usr/local/gcc-3.3.6
make
make install

相应地调整“--prefix= /usr/local/gcc-3.3.6”;我更喜欢明确地知道一切都在哪里,这会让事情变得更容易。我认为如果没有指定它将默认为/usr/local/bin

您可以执行 a./configure --help来获取所有可用选项的描述; prefix=只是执行时安装的位置make install,如果未指定“prefix=”,还会告诉默认安装位置。

使用时--prefix=,您需要取代您在环境变量中所做的任何操作的本地安装,PATH如下LD_LIBRARY_PATH所示

*for bash*
export PATH=/usr/local/gcc-3.3.6/bin:${PATH}
export LD_LIBRARY_PATH=/usr/local/gcc-3.3.6/lib:${LD_LIBRARY_PATH}

*for csh or tcsh*
setenv PATH /usr/local/gcc-3.3.6/bin:${PATH}
setenv LD_LIBRARY_PATH /usr/local/gcc-3.3.6/lib:${LD_LIBRARY_PATH}

打开一个新的终端窗口或首先输入rehash

然后 awhich gcc会让您知道您将使用的 gcc 版本,而无需手动且明确地/usr/local/gcc-3.3.6/bin/gcc使用它。

每当稍后运行使用较新/较旧版本的 GCC 编译的可执行文件时,请确保LD_LIBRARY_PATH已正确设置为相应的 GCC 版本。

在此./configure步骤中,您将知道是否缺少先决条件,因此,如果此步骤在第一次尝试时未 100% 成功,请不要惊慌,您需要下载并安装它们,或者通过从的输出./configure --help

  • 这样你就可以拥有多个 gcc 版本,让每个 gcc 单独安装--prefix=
  • 相应地调整LD_LIBRARY_PATH、 和PATH,以使用其中的一个

答案2

您可以从这里下载 debian 软件包

http://old-releases.ubuntu.com/ubuntu/pool/universe/g/gcc-3.3/gcc-3.3_3.3.6-15ubuntu6_i386.deb

并安装

sudo dpkg -i /path/to/package

答案3

看起来Launchpad 提供了 gcc 3.3 的最新版本。我不知道这是否足够新,但我认为值得一试。

如果需要进一步阐述,请评论。

答案4

我已将 Debian 存储库添加到 /etc/apt/source 中。

    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

然后我使用搜索 gcc

sudo apt-cache search gcc

然后它列出了 gcc-3.3 然后我安装了

sudo apt-get install gcc-3.3 g++-3.3

然后我更改了 gcc 的符号链接以选择 gcc 3.3

相关内容