我想在Linux Mint 17.3中安装最新版本的GCC(GNU编译器集合)。当前g++ --version
返回4.8.4,而最新的稳定版本是5.3。
我想在Linux Mint 17.3中安装最新版本的GCC(GNU编译器集合)。当前g++ --version
返回4.8.4,而最新的稳定版本是5.3。
Answers:
您的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之前的先决条件。.学习谷歌搜索...尝试做更多的艰苦搜索...
g++-4.7
,这是一个更低的版本比g++-4.8
,这一点我已经有了?我想升级,而不是降级。
下载最新版本的gcc
wget http://www.netgull.com/gcc/releases/gcc-5.3.0/gcc-5.3.0.tar.bz2
使用命令:tar -xjf
解压缩文件
输入您刚刚解压缩的目录,在中输入$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没有发现!” 您可以执行以下操作进行修复:
apt-get install zlib1g-dev
--disable-multilib
呢
gcc/lto-compress.c:28:18: fatal error: zlib.h: No such file or directory
我不确定自己应该是最新的,因为总是会有一些最新的。但是您可以通过这种方式安装其中的任何一个。
以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
说实话,我实在太懒了,无法摆脱17.3-这对我有用。话虽如此,我仍然需要更新的gcc。为了针对不同的目标重复编译它,我需要修改并运行一个bash脚本(请参见下文)(我正在编写自己的玩具OS,因此必须使用专门生成的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"