システムの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にインストールする方法を知っている人はいますか?
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++機能は何ですか?
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
12.04 Preciseでこれらのgcc機能が必要になりました。どうすれば入手できますか?
ソースからGCC-4.8をビルド:
12.04でgcc-4.8が必要な場合、唯一のオプションは ソースからビルド です。
インストールの前に GCCインストールFAQ をお読みください。
Gcc.4.8は、gnu.orgの ミラーサイト のいずれか、または SVNサーバー から直接ダウンロードできます。
ソースからコンパイルする手順の例を次に示します(詳細については here を参照してください)。これらはシステムや設定によって異なる場合があることに注意してください。
ソースコード をダウンロードします
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>
)追加のライブラリをインストールします(Sudo apt-get install libgmp-dev libmpfr-dev libmpc-dev libc6-dev
)
./gcc-4.8.0/configure --prefix=/app/gcc/4.8.0
make
を実行します(完了するには時間がかかります。コーヒーを作るか、クッキーを焼いてください。;-))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の一部を提供します。 ;-)
したがって、少なくとも手動インストールの場合、上記の回答は機能します。 Sudo make install
の後でも、gcc
を実行しても、ストックバージョン4.6.3が実行されるだけです。 gcc-4.8
またはgcc-4.8.0
を試しても機能しません。 /app/gcc/4.8.0/bin/gcc
を実行することが、私にとって唯一の機能であるように見えます。私はそれが一種の不自由なことを意味しますが、少なくともそれは動作します。