Linux MintにGCCの最新の安定リリースをインストールする方法は?


8

Linux Mint 17.3に最新バージョンのGCC(GNUコンパイラコレクション)をインストールしたい。現在g++ --version4.8.4を返しますが、最新の安定版リリースは5.3です。


通常、より新しいバージョンのバックポートは可能ですが、簡単ではありません。別の方法は、ソースからのローカルインストールです。ただし、清潔さの観点からは、バックポートが望ましいです。
Faheem Mitha

それをインストールする別の方法はありますか?パッケージとしてではないでしょうか?
becko

はい、上で述べたように、ローカルインストールはオプションです。ただし、後で完全にアンインストールできるように注意する必要があります。パッケージの構築は難しいプロセスですが、メンテナンスの観点からは簡単でクリーンです。
Faheem Mitha

Gccの最新バージョンである9.2がソースコードとして配布されています。このコメントがモデレーターによって削除されない場合は、元のサイトgcc.gnu.orgでハウツーを読む時間が見つかるかもしれません。以前の回答は、正当な理由がないため削除されました。
bbaassssiiee

回答:


8

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ですか?ダウングレードではなく、アップグレードしたい。
becko 2016年

それは4.8だったとあなたは私があなたのロジックを与えたが、本当にあなたが私のポイントはGR8格下げのapt-キャッシュ検索gccで入手可能な最新のパッケージのために前に検索する必要がある
Vinood NK Maheshwariを

現在、この答えは矛盾しているようです。OPがv5の代わりにv4.7をインストールする理由を説明してください(できれ、ハードワークの利点に関する決まり文句はありません)。
agc

4.7を4.9に置き換えれば動作します。
アルゴマン2017

3

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 not found!」のようなエラーメッセージが表示される場合は編集してください。あなたはそれを修正するために以下を行うことができます:

apt-get install zlib1g-dev

エラーがある場合はコメントしてください。更新します。
GAD3R 2016年

なんで--disable-multilib
becko 2016年

エラー:gcc/lto-compress.c:28:18: fatal error: zlib.h: No such file or directory
becko 2016年

リンクが切れています。
einpoklum

1

最新のものは常に出てくるので、私は最新のものを何にするべきか確信が持てません。しかし、この方法でそれらのいずれかをインストールできます。

例として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

より高い優先度(この場合は20)のgcc-8 / g ++-8を選択する場合は、次のことも行う必要があります。

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

0

真実は、私が単に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"
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.