4.6の代わりにGCC 4.7を使用するにはどうすればよいですか?


8

プロジェクトで作業していて、CのC11機能をいくつか使用したいと思いました。これらの機能を使用するには、GCC 4.7が必要なので、シナプスに行って4.7を検索し、パッケージgcc-4.7-baseを見つけたので、それをインストールしました[1]。

これでgcc-4.7-baseがインストールされたので、4.7を使用できると期待していましたが、いいえ、gcc --versionそれでも4.6.3がさらに表示されます。4.7を直接呼び出そうとすると/usr/bin/gcc-4.7、存在しません。ただしgcc-4.6、実行可能ファイルが存在しません。

GCC 4.7を「アクティブ化」するにはどうすればよいですか?私はここを読みました、あなたはいくつかのクレイジーなことをupdate-alternativesしますが、gcc-4.7実行可能ファイルが実際には私のマシンに存在しないので、私にはうまくいきません。

注:1. gcc-4.6-baseも見たので、アンインストールすると思いましたが、synapticはインストールしたすべてのパッケージを削除し、Javaランタイムをインストールしようとしたため、明らかな理由により、削除しないことにしました。

回答:


13

以下は私のために働いた。

sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.6 60 --slave /usr/bin/g++ g++ /usr/bin/g++-4.6 
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.7 40 --slave /usr/bin/g++ g++ /usr/bin/g++-4.7 
sudo update-alternatives --config gcc

参考資料


OP update-alternativesがgcc-4.7バイナリが利用できないため、ルートは彼らのために機能しないと明確に述べたので、これが質問に答えるとは思わない。確かに、エラーではgcc-4.7ベースの結果をインストールした後、この答えの指示に従っしようとしている:update-alternatives: error: alternative path /usr/bin/gcc-4.7 doesn't exist.
waldyrious

0

gccバイナリはでありgcc-X.Y、パッケージではありませんgcc-X.Y-base。後者は、gcc-X.Yまたはの依存関係ですlibstdc++

基本的には、単にインストールgcc-4.7してgcc-4.7から、makefileから呼び出すか、を使用install-alternativesしてデフォルトにする必要があります。

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