2016-05-11 30 views
0

私が持っている特定のLinuxマシンでGCCを更新しようとしていますが、利用可能なパッケージはありません。GCCのアップグレード - 問題を引き起こすGMPのバージョン

私はconfigureスクリプトを実行すると、それはGMPのバージョン文句:

# ../gcc/configure 
checking build system type... i686-pc-linux-gnu 
[snip] 
checking for the correct version of gmp.h... no 
configure: error: Building GCC requires GMP 4.2+, MPFR 2.4.0+ and MPC 0.8.0+. 
Try the --with-gmp, --with-mpfr and/or --with-mpc options to specify 
their locations. Source code for these libraries can be found at 
their respective hosting sites as well as at 
ftp://gcc.gnu.org/pub/gcc/infrastructure/. See also 
http://gcc.gnu.org/install/prerequisites.html for additional info. If 
you obtained GMP, MPFR and/or MPC from a vendor distribution package, 
make sure that you have installed both the libraries and the header 
files. They may be located in separate packages. 

私はgmp.hをチェックするときしかし、それは示しています

/* Major version number is the value of __GNU_MP__ too, above and in mp.h. */ 
#define __GNU_MP_VERSION 4 
#define __GNU_MP_VERSION_MINOR 2 
#define __GNU_MP_VERSION_PATCHLEVEL 1 

とRPMは、次のように報告されます

# rpm -q --qf "%{VERSION}\n" gmp 
4.2.1 
# rpm -q --qf "%{VERSION}\n" gmp-devel 
4.2.1 

ライブラリーとヘッダーの両方が正しいバージョンであるようです(混乱して、 F libgmp用の.soファイルは、これは失敗するかもしれない、なぜ誰もが知ってい

libgmp.so -> libgmp.so.3.4.1 

として表示されるバージョン番号...で行うには、正確には何もないように見えますか?これらは、このマシンにインストールされた唯一の2つのgmpパッケージであり、標準の/ usr/includeと/ usr/libの場所にあるので、すでに検索パス上にあるはずです。

+0

"マシン"、 "バージョン"などを実際の情報に置き換えた方が簡単です...いいえ、libsmurf.X.Y.Zの番号はパッケージのバージョンとは関係ありません。 config.logをチェックする必要があります。何らかの理由でコンパイルが失敗したり、バージョンが間違っていたりすると、エラーメッセージは同じになります。 –

答えて

0

"Building GCC requires GMP 4.2+"の詳細は不十分です。 configureに掘り、それが実際にチェックしています:

#if GCC_GMP_VERSION < GCC_GMP_VERSION_NUM(4,2,3) 
    choke me 
    #endif 

すなわちGMP 4.2 0.3以上、ので、私の4.2.1はそれをカットされませんでした。

0

Installing GCCお読みください:推奨されていません

困難な道を、設定、そして、その後、GMP、MPFRとMPCのソースをダウンロードし設定し、非標準的な場所でそれらのそれぞれをインストールすることです--with-gmp =/some/silly/path/gmp --with-mpfr =/some/silly/path/mpfr --with-mpc =/some/silly/path/mpcを指定して強制的に設定するあなたの環境で永遠にLD_LIBRARY_PATH =/some/silly/path/gmp:/ some/silly/path/mpfr:/ some/silly/path/mpc/libこれは愚かであり、実行時にダイナミックリンカーがどのようにライブラリを見つけるかを理解していない人にとっては大きな問題を引き起こします。こんなことしないで。 --with-gmpまたは--with-mpfrまたは--with-mpcオプションのいずれかを使用してGCCをビルドできない場合は、おそらくそれらを使用すべきではありません。

./contrib/download_prerequisitesを実行するだけで、多くの時間と痛みを節約できます。

+0

ネットワークに接続されていないため、このマシンでdownload_prerequisitesを実行できません。 FedoraとSUSEを含むRPMベースのシステムでは、gmp-devel、mpfr-devel、libmpc-devel(またはSUSEのmpc-devel)パッケージをインストールする必要があります。パッケージはライブラリとヘッダを標準のシステムディレクトリにインストールするので、私の状況に当てはまると思うGCCをビルドするときに自動的に見つかるので、 "難しい方法"は必要ありません。それだけで明らかにgmpのバージョンを正しく認識していません。 – jam

関連する問題