お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#1 2008-12-24 21:45:15

cjohn
メンバ
登録日: 2008-12-21

バージョン違いgccの共存

[目的]
C++0xの勉強のためにgccの4.4を使いたい
4.4は頻繁に更新されるが、更新毎のgccを取っておいて検証に使いたい

[現状]
gcc 4.4 20081219はビルドできて、「make install」しました。
「gcc -v」で4.4と表示されます。
これは「/usr/local/bin/gcc」を呼び出しているようです。

[教えて頂きたいこと]
今後バージョン違いのgccを共存させる方法を教えてください。
Linux初心者なのでどのような方法が定石か分からず困っています。

考えたのは「/usr/local/bin/gcc」を「/usr/local/bin/gcc-4.420081219」とリネームし、「/usr/local/bin/gcc」はgcc-4.420081219へのリンクとする。
4.4の新バージョンが出た場合は同じように「/usr/local/bin/gcc-4.4200xxxxx」とリネームし、gccは使いたいバージョンへのリンクとする。
この方法で問題ないでしょうか?

オフライン

 

#2 2009-01-05 19:41:04

einundzwanzighundertsechs
メンバ
登録日: 2008-12-28

Re: バージョン違いgccの共存

gcc の別バージョンを make install した場合は,前バージョンは完全な形で残されるので何も心配いりません.

私は玄箱Pro (architecture = ARM)で,何度か gcc をソースからインストールしてます.

$ ls /usr/bin/*-gcc-*
/usr/bin/arm-linux-gnueabi-gcc-4.2.4  /usr/bin/arm-linux-gnueabi-gcc-4.3.2  /usr/bin/arm-none-linux-gnueabi-gcc-3.4.4

とバージョンの違い,また configure オプションの違いによる gcc がそれぞれ別の名で /usr/bin にインストールされています.ライブラリやヘッダーファイルも

$ ls /usr/lib/gcc/arm-linux-gnueabi/
4.2.4  4.3.2
$ ls /usr/libexec/gcc/arm-linux-gnueabi/
4.2.4  4.3.2

のように分類されて全て残されます.実際のところ,あまりに多くなりすぎて手作業で掃除しました.

使い分けは,GNU 標準の configure & make のスタイルならば,環境変数 CC を設定して,

$ export CC=arm-linux-gnueabi-gcc-4.2.4
$ configure
$ make

で,特定のバージョンの gcc を使ってくれます.

追加:
と,書いたところで gcc 4.4 の開発版を使いたいと言うことに気づきました.
頻繁に更新する開発版のバージョンづけについては正直知りません.
$ ls /usr/local/bin/*gcc*
で確認下さい.

最後の編集者: einundzwanzighundertsechs (2009-01-05 19:47:54)

オフライン

 

#3 2009-01-08 21:25:33

cjohn
メンバ
登録日: 2008-12-21

Re: バージョン違いgccの共存

確認したところ、4.3は/usr/lib/gcc/x86_64-linux-gnu以下にありましたが
4.4開発版は/usr/local/lib/gcc/x86_64-linux-gnuにありました。
細かいビルド毎には分かれていないのでそのまま新しいバージョンを入れると上書きそうですね。
安定版のバージョン分けについても知りたかったので非常に助かりました。
ありがとうございました。

オフライン

 

Board footer

Powered by FluxBB