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