- PR -

gcc323 と gcc296 の切り替え

投稿者投稿内容
会議室デビュー日: 2004/09/10
投稿数: 13
投稿日時: 2004-10-28 19:22
こんにちは。

gcc-3.2.3 と gcc-2.9.6 はどうのようにして切り替えるのでしょうか?

red hat enterprise linux WS release 3 を使っています。

以下のように gcc を gcc296 へのシンボリックリンクにして対応する以外に
何か方法はあるのでしょうか?

mv /usr/bin/gcc /usr/bin/gcc323
ln -s /usr/bin/gcc296 /usr/bin/gcc
mv /usr/bin/g++ /usr/bin/g++323
ln -s /usr/bin/g++296 /usr/bin/g++

よろしくお願い致します。
コブラ
ぬし
会議室デビュー日: 2003/07/18
投稿数: 1038
お住まい・勤務地: 神奈川
投稿日時: 2004-10-29 01:19
.cshrc とか .profile とかでパスを切り替え。

/bin/gcc が 2.96 で /usr/local/bin/gcc が 3.3 やったら、

PATH=/bin:/sbin:/usr/sbin:/usr/local/bin:/bin
export PATH



故意に /bin より /usr/local/bin をパスの先頭に近い方に連結してる。
そうすると、/usr/local/bin 以下の gcc が優先されるという訳ですわ。

ある意味 First In First Out ? (プ
ん〜、いまいち的外れ・・・
Toshi
ベテラン
会議室デビュー日: 2003/09/12
投稿数: 62
投稿日時: 2004-10-29 05:07
引用:

右さんの書き込み (2004-10-28 19:22) より:

gcc-3.2.3 と gcc-2.9.6 はどうのようにして切り替えるのでしょうか?




どのようにgccがインストールされているのか存じませんが、
man gcc によると -V version とすると起動するバージョンを規定すると書いてあります。
会議室デビュー日: 2004/09/10
投稿数: 13
投稿日時: 2004-10-29 11:23
コブラさん、Toshi さん、ありがとうございます。

gcc は rpm でインストールしているので両バージョンが /usr/bin にインストール
されています。

コブラさんのおっしゃるとおり /usr/local/bin へ 2.9.6 のシンボリックリンクを
作成して環境変数 PATH で切り替えるのも良いですね。

Toshi さんのおっしゃるとおり -V でも切り替えられる事をインターネットで
調べていたら分かったのですが、Makefile で Open Source のソフトウェアを
コンパイルする場合にどのように行えば良いのか分かりません。
Makefile を変更すればよさそうですが、Makefile を変更せずに make を実行する
shell で何かできるのでしょうか?

皆さんどのように切り替えているのでしょうか?

引き続き情報をお待ちしております。

宜しくお願い致します。
Toshi
ベテラン
会議室デビュー日: 2003/09/12
投稿数: 62
投稿日時: 2004-10-29 18:01
引用:

Makefile を変更すればよさそうですが、Makefile を変更せずに make を実行する
shell で何かできるのでしょうか?

皆さんどのように切り替えているのでしょうか?



たとえば Makefile 内で CC のオプションを CCOPTS と言う変数に代入していたなら、

make CCOPTS="-V 2.9.6 そのほか必要なオプション"

と指定する。
会議室デビュー日: 2004/09/10
投稿数: 13
投稿日時: 2004-10-29 18:33
Toshi さんありがとうございます。
引用:

Toshiさんの書き込み (2004-10-29 18:01) より:

たとえば Makefile 内で CC のオプションを CCOPTS と言う変数に代入していたなら、

make CCOPTS="-V 2.9.6 そのほか必要なオプション"

と指定する。



Makefile の中で CC=gcc296 や CCOPTS="-V 2.9.6" 等と指定してみたり
色々と行ってみましたがうまくいきませんでした。
コマンドラインで CC=gcc296 make や CCOPTS="-V 2.9.6" make 等と
行ってみたりもしましたがダメでした。
たまたま Makefile が CC や CCOPTS を参照しないような内容になっているのかもしれ
ませんね。
(Makefile の記述がよく分かっていません)

/usr/local/bin に gcc296 のシンボリックリンクを作成して PATH を変更して
対応しております...。
Toshi
ベテラン
会議室デビュー日: 2003/09/12
投稿数: 62
投稿日時: 2004-10-29 21:22
引用:

右さんの書き込み (2004-10-29 18:33) より:
コマンドラインで CC=gcc296 make や CCOPTS="-V 2.9.6" make 等と
行ってみたりもしましたがダメでした。
たまたま Makefile が CC や CCOPTS を参照しないような内容になっているのかもしれ
ませんね。
(Makefile の記述がよく分かっていません)



Makefile を覗いてみると
CFLAGS=
といった行は見当たりませんか?

これらの変数はmakeの中の変数ですから、makeコマンドの後ろに記述してください。

引用:

/usr/local/bin に gcc296 のシンボリックリンクを作成して PATH を変更して
対応しております...。



まあ、終わりよければ全て良しですが…
コブラ
ぬし
会議室デビュー日: 2003/07/18
投稿数: 1038
お住まい・勤務地: 神奈川
投稿日時: 2004-11-02 10:07
PATH 切り替えも結構面倒臭い。
2.96 の方を gcc, 3.3 の方を cc と、別の名前に rename して
切り替えると、同じディレクトリでもバッティングもしない。

わしの場合、古い版を ccc, よく使う新しい版を cc とリネームして
切り替えてます。

スキルアップ/キャリアアップ(JOB@IT)