如何在 Linux Mint 中安装最新稳定版本的 GCC?

如何在 Linux Mint 中安装最新稳定版本的 GCC?

我想在 Linux Mint 17.3 中安装最新版本的 GCC(GNU 编译器集合)。目前g++ --version返回 4.8.4,而最新的稳定版本是 5.3。

答案1

您的 Linux Mint 预装了 GCC 软件包。因此,首先我建议您通过在终端中键入以下命令来检查该软件包是否已存在于您的系统中。

apt-cache search gcc

如果您没有任何此类软件包,请首先在终端中使用以下命令,添加以下存储库:

sudo add-apt-repository ppa:ubuntu-toolchain-r/test

然后使用下一个命令:

sudo apt-get update
sudo apt-get install g++-4.7 c++-4.7

总有一些基本的东西是我们应该学习的;把它作为linux之前的先决条件..学习谷歌搜索...尝试做更多的努力搜索...

答案2

下载最新版本的 gcc

wget http://www.netgull.com/gcc/releases/gcc-5.3.0/gcc-5.3.0.tar.bz2

使用命令:tar -xjf解压文件

进入刚才解压的目录,比如 in $HOME/Downloads/gcc-5.3.0,然后输入命令:

./configure --disable-checking --enable-languages=c,c++,objc 
--disable-multilib --with-system-zlib prefix=/usr/bin/gcc-5.3

依赖安装:构建GCC需要GMP4.2+、MPFR 2.4.0+和MPC 0.8.0+并且构建必备

sudo apt-get install libgmp-dev libmpfr-dev libmpc-dev libc6-dev
sudo apt-get install build-essential

安装 C++ 编译器

sudo apt-get install g++

下一个类型:

make 
sudo make install

编辑 如果您仍然收到类似“ zlib.h not found!” 的错误消息您可以执行以下操作来修复它:

apt-get install zlib1g-dev

答案3

我不确定什么应该是最新的,因为总是有一些最新的产品出现。但您可以通过这种方式安装其中任何一个。

以gcc-8为例:

sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-8 g++-8
gcc-8 --version

如果你想选择更高优先级的gcc-8/g++-8(本例中为20),你还需要

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 20 --slave /usr/bin/g++ g++ /usr/bin/g++-8

答案4

说实话,我只是懒得放弃 17.3 - 它对我有用。话虽这么说,我仍然需要一个更新的 gcc。为了针对不同的目标重复编译它,我有一个修改并运行的 bash 脚本(见下文)(我正在编写自己的玩具操作系统,因此我必须使用专门生成的 gcc)。

更改以下脚本中的目录以匹配您拥有的目录。我将编译版本保存在自己的目录中,这样我就可以轻松地在编译版本和系统版本之间切换。我建议你这样做。您需要下载 binutils-2.23.2 以及您感兴趣的 gcc 版本(下面我使用的是 7.1.0)。将它们与下面的脚本一起放入 ~/contrib 目录中。

您可能还想将“--enabled-languages=c”行更改为“--enabled-languages=c,c++,objc” - 我的项目只需要 C。另一个更改是 PLATFORM 的值。我使用“i686-elf”,但这对你不起作用(我在下面将其更改为适用于 32 位平台的东西)。对于 64 位平台,您可以尝试“x86_64-linux-gnu”。

出于好奇 - 我这样构建它的原因是因为 gcc 构建过程曾经有一个错误,无法在源目录中进行重建。我不知道这个错误是否仍然存在(我上次在 4.8.0 中遇到过它),但唯一的解决方法是如果您想重建,则在单独的目录中显式构建。

[编辑:执行 GAD3R 上面建议的依赖项的安装]

#!/bin/bash

function die() {
   echo $1
   exit 127
}


export PREFIX=/home/lelanthran/opt/cross
export TARGET=i686-linux-gnu
export PATH="$PREFIX/bin:$PATH"

pushd $PWD &> /dev/null
mkdir -p build-binutils
cd build-binutils
../binutils-2.23.2/configure \
   --target=$TARGET \
   --prefix="$PREFIX" \
   --with-sysroot \
   --disable-nls \
   --disable-werror || die "binutils/config error"
make           || die "binutils/make error"
make install   || die "binutils/make install error"

popd &> /dev/null

pushd $PWD &> /dev/null
mkdir -p build-gcc-7.1.0
cd build-gcc-7.1.0
../gcc-7.1.0/configure \
   --target=$TARGET \
   --prefix="$PREFIX" \
   --disable-nls \
   --enable-languages=c \
   --without-headers || die "gcc/config error"
make all-gcc                  || die "gcc/make all-gcc error"
make all-target-libgcc        || die "gcc/make all-target-libgcc error"
make install-gcc              || die "gcc/make install-gcc error"
make install-target-libgcc    || die "gcc/make install-target-libgcc error"

相关内容