Для сборки GCC требуется GMP 4.2+, MPFR 2.3.1+ и MPC 0.8.0+ - PullRequest
51 голосов
/ 13 февраля 2012

Я скачал GCC 4.5 из http://www.netgull.com/gcc/releases/gcc-4.5.0/, но когда я пытаюсь настроить / собрать, я получаю сообщение об ошибке ниже:

Linux:>~/shared_scripts/bin/gcc/gcc-4.5.0 1040> /x/home/prakash_satya/shared_scripts/bin/gcc/gcc-4.5.0/configure CC="gcc -m64" --prefix=/x/home/prakash_satya/shared_scripts/bin/gcc/gcc-4.5.0 --with-gmp-lib=/usr/lib64 --with-mpfr-lib=/usr/lib64 --enable-shared --enable-threads=posix --enable-__cxa_atexit --enable-clocale=gnu --enable-languages=c,c++
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking target system type... x86_64-unknown-linux-gnu
checking for a BSD-compatible install... /usr/bin/install -c
checking whether ln works... yes
checking whether ln -s works... yes
checking for a sed that does not truncate output... /bin/sed
checking for gawk... gawk
checking for gcc... gcc -m64
checking for C compiler default output file name... a.out
checking whether the C compiler works... yes
checking whether we are cross compiling... no
checking for suffix of executables...
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc -m64 accepts -g... yes
checking for gcc -m64 option to accept ISO C89... none needed
checking for g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking for gnatbind... no
checking for gnatmake... no
checking whether compiler driver understands Ada... no
checking how to compare bootstrapped objects... cmp --ignore-initial=16 $$f1 $$f2
checking for objdir... .libs
checking for the correct version of gmp.h... no
configure: error: Building GCC requires GMP 4.2+, MPFR 2.3.1+ 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.
Linux:>~/shared_scripts/bin/gcc/gcc-4.5.0 1041>

В соответствующих каталогах присутствуют следующие библиотеки

/usr/lib/libgmp.a
/usr/lib64/libgmp.a

/usr/lib/libmpfr.a
/usr/lib64/libmpfr.a

У меня нет библиотеки libmpc.a, установленной где-либо в коробках.

На основании ошибки, как я могу узнать:

a) какая текущая версия libgmp.a и libmpfr.a установлены.

b) Если онинеправильной версии, как я могу развернуть свою собственную версию, не нарушая текущую?

Ответы [ 4 ]

107 голосов
/ 19 июля 2016

Внутри каталога gcc выполните эту команду:

./contrib/download_prerequisites

После этого сценария GMP, MPFR и MPC будут готовы к использованию. Продолжайте с ./configure.

56 голосов
/ 17 июня 2013

У меня была такая же проблема при попытке установить / скомпилировать GCC 4.8.1. Вот как я решил:

В Debian просто запустите две команды:

apt-get install libmpc-dev
./configure
16 голосов
/ 14 ноября 2014

У меня была такая же проблема при компиляции ветки GCC 4.9.

Для систем Red Hat и Fedora , выполните следующую команду:

sudo yum install gmp gmp-devel mpfr mpfr-devel libmpc libmpc-devel

Это установит библиотеки GNU с множественной точностью (MP) для целых, с плавающей точкой и комплексных чисел.

7 голосов
/ 13 февраля 2012

В каталоге, где установлены эти библиотеки (/usr/gnu64/lib), у меня также есть файл libgmp.la (и файлы libmpc.la и libmpfr.la), который содержит читаемый текст.Информация о версии SO там, но это не совсем то же самое, что «версия продукта».Вместо этого он говорит о совместимости ссылок.

Я пытался выяснить, какая у меня версия, и странное решение, которое я нашел, состояло в том, чтобы запустить GCC (4.6.1), который я создал с опцией -v,Частично сказано:

GNU C (GCC) version 4.6.1 (x86_64-apple-darwin11.1.0)
    compiled by GNU C version 4.6.1, GMP version 5.0.1, MPFR version 3.0.0, MPC version 0.8.2
warning: GMP header version 5.0.1 differs from library version 5.0.2.
warning: MPFR header version 3.0.0 differs from library version 3.1.0.
warning: MPC header version 0.8.2 differs from library version 0.9.

Итак, похоже, что у меня установлен GMP 5.0.2 (но я собрал GCC с 5.0.1) и MPFR 3.1.0 (но я собрал GCC с 3.0.0) и MPC 0,9 ​​(но я построил GCC с 0,8,2).Несоответствие возникает из-за того, что я пытался скомпилировать и установить GCC 4.6.2, и, по-видимому, требовались более новые версии.(У меня ничего не получилось, но это другая история.)

Я устанавливаю свои пользовательские библиотеки в /usr/gnu64/lib, а затем сообщаю GCC, где их найти, с помощью параметров конфигурации --with-mpfr=/usr/gnu64/lib, --with-gmp=/usr/gnu64/lib, --with-mpc=/usr/gnu/64/lib.Эти пути встроены в GCC, и он работает оттуда.

...