- ベストアンサー
gccのバージョンを下げる方法
Fedoraでgcc 4.3.0-8を使っています。 訳あって、バージョンを3.4.6に下げたいのですが、 どのようにすればいいでしょうか。 よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
gccのメジャーバージョンNoが異なる場合は、作成される 実行モジュールの互換性が無い場合が有ります。 止めた方が良いでしょう。 過去の例では、古いバージョンのgccが別名称で用意され ていた事がありますので、該当する物が無いか探すのも 一つの方法です。 #Fedoreでは常にgccの最新版を使用してるので、一部の #プログラムで対応しきれない物が出てくる場合が時々 #有り、旧版が同梱されている事もあります。 もしくは http://unicus.jp/wp/archives/39 yamcha 0.33 が fedora 9 (gcc 4.3) で make できない、そんなとき にある様に >つまるところ、gcc 4.2 以前と gcc 4.3 の違いに起因するようです。 > >gcc 4.2 以前では、string.h や stdlib.h のようなヘッダ >ファイルは明示的にインクルードしていなくても、そのヘッダ >ファイルでプロトタイプ宣言されている関数を呼び出すことが >できました。 > >gcc 4.3 では明示的なインクルードが必要です。 にある様に、必要なヘッダファイルを追加してみて下さい。
その他の回答 (3)
- Tacosan
- ベストアンサー率23% (3656/15482)
そ~いうときは 「どんな訳があるのか」 をきちんと書くのが質問者のマナーってものだろう. 確か C なら「適切な宣言さえあればヘッダファイルを #include しなくてもいい」はずだけど>#3. 逆に C++ では (std 名前空間を使う関係上) #include しないとだめだったような気がする.
お礼
マナーですか...失礼いたしました。 この質問の1つ前(QNo.4354113)の仕切り直しだったので、省いてしまいました。 けっきょく#3さんの回答により解決しました。 ありがとうございました。
- jacta
- ベストアンサー率26% (845/3158)
QNo.4354113の問題は、バージョンを下げても解決しないと思いますが...
お礼
ありがとうございました。 gcc 4.2以下だと、includeしなくても勝手にうまくやってくれる(おせっかい!)のに、4.3ではそうでなくなったため、問題が起こっていることがわかりました。 ということで、嫌なことですが、けっきょく本件はバージョンを下げると解決しました。
- redfox63
- ベストアンサー率71% (1325/1856)
ん~ バージョンを下げるより 現行のバージョンでmakeのやり方についてのドキュメントを探した方がいいかもしれません Linuxの場合 make config XXX とかでいろんなプラットフォームに対応するように作られていることが多かったと思います # 最近は Windowsばかりなので 指定の構文が多少違うかも知れませんが もともと 何をコンパイルしたいのかを明示した方が的確な回答が得られると思いますよ
お礼
なるほど、いいアドバイスをありがとうございます。
お礼
ありがとうございました。 これです。 全て解決しました。 修正ヶ所が非常に多かったので、やはりバージョンを下げたかったのですが、、ANo.1さんのアドバイスもあり、1個1個直して、ようはくmakeが通りました。