web-dev-qa-db-ja.com

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

システムの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にインストールする方法を知っている人はいますか?

94
MdT

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は現在、ツールチェーンPPAorを介して12.04(Precise)で利用可能です(以下を参照)詳細)。

リリースのお知らせ

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

ただし、Launchpadには、gcc-4.8を含む toolchain テストビルドで利用できるPPAがあるようです。ここでは https://launchpad.net/~ubuntu-toolchain-r/+ archive/test

changelog and package list によると、i386、AMD64、arm、およびpowerpcにはdebがあり、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の変更点の完全なリストについては、 Changelist をご覧ください。

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

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

12.04でgcc-4.8が必要な場合、唯一のオプションは ソースからビルド です。

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

Gcc.4.8は、gnu.orgの ミラーサイト のいずれか、または SVNサーバー から直接ダウンロードできます。

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

  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バックポートを提供してくれたすべての人々に感謝します。 makeの実行中に作成したCookieの一部を提供します。 ;-)

118
Kevin Bowen

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

1
user149393