gcc-4.8のインストール方法


94

システムのgccバージョンを確認しました。

現在は4.6.3です。gcc-4.8がリリースされたことを読みました。

次のコマンドを試してみましたが成功しませんでした:

sudo apt-get install gcc (gcc is already the newest version)
sudo apt-get install gcc-4.8 (unable to locate package)

このパッケージを12.04にインストールする方法を知っている人はいますか?


@maggotbrainの答えはうまくいきましたが、追加する必要がありました:sudo apt-get install gcc-multilibこの問題が発生したときに:superuser.com/questions/432202/make-fails-compiling-gcc
スキルマン

2
将来のGoogle社員への注意:「lexer_line」への未定義の参照のようなエラーメッセージが表示される場合は、ツールが不足しているためです:bisonおよびflex sudo apt-get install bison sudo apt-get install flex flex as here:http:// stackoverflow。 com / questions / 4262531 / trouble-building-gcc-4-6
virtualPN

回答:


119

GCC-4.8は12.04 Preciseで利用できますか?

更新:2013年6月5日の時点で、12.04(正確)用のgcc 4.8.1のリリースがhttps://launchpad.net/~ubuntu-toolchain-r/+archive/testで入手可能です。

簡単な答えは、gcc-4.8現在、ツールチェーンPPAを介して、 またはソースをコンパイルすることにより、12.04(Precise)で利用可能です(詳細は以下を参照)。

リリースのお知らせ

gcc-4.8のリリースアナウンスは 3月22日に行われたので、おそらく公式リポジトリでまだこれを見ることはないでしょう。

ただし、Launchpadには、gcc-4.8を含むツールチェーンテストビルドで使用できるPPAがあります(https://launchpad.net/~ubuntu-toolchain-r/+archive/test)

changelogとパッケージリストによると、i386、amd64、arm、powerpcにはdebsがあり、13.04のraringに対してビルドされました。

12.04用のgccの最新バージョンは4.8.1で、ツールチェーンPPAで入手できます。

ツールチェーン/テストPPAの追加:

PPAをシステムに追加するには、ターミナルを開き(Ctrl+ Alt+ t)、次のコマンドを実行します。

sudo apt-get install python-software-properties
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-4.8
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 50

また、いくつかの推奨パッケージをインストールするよう求められます。これらのパッケージは、gcc-4.8のインストールに推奨されますが、オプションです。

gcc-4.7.2では利用できないgcc-4.8で利用できるC ++機能は何ですか?

  • GNU.ORGによると、gcc-4.7は多くのC ++ 11機能をサポートしています
  • gcc-4.8リリースの時点で、gcc-4.7は64の機能のうち8つをサポートしていません(GCCでのC ++ 0x / C ++ 11サポートを参照)。

  • これらの機能は次のとおりです。

    Language Features
    - Rvalue references for *this
    - Generalized attributes
    - Alignment support
    - Inheriting constructors
    Concurreny
    - Bidirectional Fences
    - Memory model
    - Abandoning a process and at_quick_exit
    - Thread-local storage 
    
  • gcc-4.8の変更点の完全なリストについては、チェンジリストをご覧ください

12.04 Preciseでこれらのgcc機能が必要になりました。どうすれば入手できますか?

ソースからのGCC-4.8のビルド:

12.04でgcc-4.8が必要な場合、唯一の選択肢はsourceからビルドすることです

インストールの前にGCCインストールFAQを読んでください。

gcc.4.8は、gnu.orgのミラーサイトの1つから、またはSVNサーバーから直接ダウンロードできます

ソースからコンパイルする手順の例を次に示します(詳細については、こちらを参照してください)。これらは、システムや設定によって異なる場合があります。

  1. ソースコードをダウンロードする

    • ビルドディレクトリを作成します(mkdir gcc-build && cd gcc-build
    • ソースファイルをダウンロードしますwget http://www.netgull.com/gcc/releases/gcc-4.8.0/gcc-4.8.0.tar.bz2(適切なミラーサイトを使用するには、このコマンドを調整します
    • ファイルを解凍します(tar -xvjf <file name>
  2. 追加のライブラリをインストールします(sudo apt-get install libgmp-dev libmpfr-dev libmpc-dev libc6-dev

  3. ソースをコンパイルします。 ./gcc-4.8.0/configure --prefix=/app/gcc/4.8.0
  4. 実行make(これは完了するまで時間がかかります。コーヒーを作るか、クッキーを焼きます。;-))
  5. コードをインストールします。 sudo make install

このプロセスが完了したら、コマンドgcc --versionを実行して、インストールが正常に完了したことを確認します。次のような出力が表示されるはずです。

maggotbrain@foucault:~$ gcc --version
gcc (Linaro 4.8.0) 4.8.0
Copyright (C) 2013 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.

結論:インストールしやすいUbuntuバックポートを提供してくれたすべての人々に感謝します。実行中に焼いたCookieをいくつか提供しますmake。;-)


以下を除く優れた回答:E: Unable to locate package gcc-4.8
ジョン・ディブリング

2
追加のライブラリをインストールするだけでは十分ではありませんでしたが、実行して./contrib/download_prerequisites.sh修正しました(stackoverflow.com/questions/9253695/…から)。
ゴーティエ

7
注:C ++コードをコンパイルするには、gcc-4.8に加えてg ++-4.8パッケージもインストールする必要がありました。そうしないと、コンパイルエラーが発生しました:gcc: error trying to exec 'cc1plus': execvp: No such file or directory 4.8
ボリスダルシュタイン

私は正常に精密にgcc4.8をインストールすることができました
ホムンクルスReticulli

1
@ John Dibling-確かに公開されたメソッドはファイルをインストールしますが、パッケージをビルドしたりインストールしたりすることはありません...したがって、見つけることができません(それら):-)。リンクからdebianフォルダを使用してパッケージを自動的にビルドする簡単な方法があります。他のパッケージでも成功しました。このソリューションは、g ++などを含むすべての関連パッケージをインストールします。
Antonio 14年

1

したがって、少なくとも手動インストールの場合、上記の回答は機能します。でもsudo make install、実行してgccもストックバージョン4.6.3が実行されるだけです。試してgcc-4.8gcc-4.8.0うまくいかない。/app/gcc/4.8.0/bin/gcc私にとっては、実行することが唯一の方法のようです。私はそれが一種の不自由なことを意味しますが、少なくともそれは動作します。


5
[:facepalm:]物事を「ラメ」と呼ぶ前に、おそらくオペレーティングシステムの知識をアップグレードする必要があります。PATHの概念を読むことから始めることができます:en.wikipedia.org/wiki/PATH_
variable

1
もちろん、DEBIAN / postinstスクリプトでパッケージをインストールしないので、update-alternatives cmd を使用して、システムが使用するデフォルトバージョンを手動で設定する必要があります。ライン...あなたが--prefix =は/ usrを使用した場合、PATHと干渉するする必要はありません...
アントニオ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.