• ベストアンサー

gccのアップグレードについて

以下のHPにあるように、gcc3.3から3.4にアップグレードするのは、ちょっとややこしそうです。 http://www.gentoo.org/doc/ja/gcc-upgrading.xml gccのバイナリだけを置き換えると、何がよくないのでしょうか。ビルドの時、gcc本体の他にもなにかを使っているのでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.2

>gcc本体の他にライブラリが必要ということは、gccが必要とするライブラリはダイナミックリンクライブラリということなのでしょうか。 file /usr/bin/gcc とかするとダイナミックかどうかわかります。 仮に、gcc cpp cc1 ld等がスタティックリンクされていても、コンパイルしたプログラムをリンクするならその際にライブラリが必要です。 >ライブラリの他に、例えばどういったファイルを利用しているのでしょうか。 プリプロセッサ(cpp)やCコンパイラ本体(cc1)等のプログラムや、ヘッダファイル。ヘッダファイルとライブラリは対になります。

aneja
質問者

お礼

とてもわかりやすいご回答ありがとうございます。コンパイラのことをまだまだ知らないということがわかりました。もっと勉強したいと思います。

その他の回答 (2)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.3

その「専用ページ」にちゃんと「C++ ABI が変更になった」って書いてあるやんか. ABI が変更になったということは必然的にライブラリも変更しなきゃならんし, そうすると場合によっては当該ライブラリを使う全てのプログラムを更新しなきゃならんかもしれない. 単に「gcc を更新する」だけなら簡単なんだけど, ライブラリまで更新されちゃうから面倒.

aneja
質問者

お礼

ご回答ありがとうございます。ABIの意味がわからず、調べて理解したつもりでも、ライブラリが変更になることまでは思いつきませんでした。もっと勉強します。ありがとうございました。

noname#96023
noname#96023
回答No.1

ライブラリなど多数のファイルを入れ替えるためです

aneja
質問者

お礼

早速のご回答、ありがとうございました。 gcc本体は、ライブラリなどをリンクした状態で作られたものと思っていたので、そういうことは考え付きませんでした。 gcc本体の他にライブラリが必要ということは、gccが必要とするライブラリはダイナミックリンクライブラリということなのでしょうか。 あと、ライブラリ「など」と書かれていますが、ライブラリの他に、例えばどういったファイルを利用しているのでしょうか。 よろしければ、ご教示下さい。