Не удается настроить gcc - mpfr не найден

Я устанавливаю gcc 4.5.2 с mpc 0.8.2, mpfr 3.1.0 и gmp 5.0.2. Я скопировал каждый из каталогов mpc, mpfr и gmp в каталог gcc-4.5.2 (удалив теги версии). GCC успешно настраивается. Однако когда я запускаю make, я получаю:

checking for MPFR... no
configure: error: libmpfr not found or uses a different ABI.
make[1]: *** [configure-mpc] Error 1
make[1]: leaving directory cross/build/gcc
make: *** [all] Error 2

MPFR находится в cross / src / gcc-4.5.2 / mpfr. МПФР уже был построен успешно. Кто-нибудь знает, почему mpc не может настроить?

Я думаю, что проблема может частично быть связана с тем, что библиотеки / заголовки для MPFR находятся в cross / src / gcc-4.5.2 / mpfr / src, а не в cross / src / gcc-4.5.2 / mpfr. Все, что я сделал, это извлек и скопировал - это структура каталогов по умолчанию.


person Robert Mason    schedule 15.02.2012    source источник


Ответы (6)


У меня была такая же проблема. Но похоже, что это происходит из-за того, что последняя версия MPFR (в вашем случае 3.1.0) изменила иерархию каталогов.

Вместо этого перед настройкой выполните следующее, когда вы находитесь внутри исходного каталога gcc (может работать только для gcc4.5.2 или новее):

./contrib/download_prerequisites

Он загрузит необходимые версии MPFR, GMP и MPC (но, вероятно, не самые последние версии) и распакует их для установки gcc.

После этого вы можете продолжить настройку, выполнение и установку.

Надеюсь это поможет.

-Ракиб

person Rakib    schedule 26.04.2012
comment
Отличный ответ. Это прекрасно работает. Я не знал, что библиотеки можно загружать автоматически. - person ; 20.05.2013
comment
Если вы используете Mac, замените команды wget в скрипте на curl -OL - person gerardw; 25.03.2015
comment
отличный ответ, однако не нашел скрипта download_prerequisites в gcc 4.4, поэтому сделал это вручную - person Denis; 23.06.2015
comment
@ Денис Хороший улов. Никогда не пробовал устанавливать gcc4.4 вручную. Обновил свой ответ. Спасибо. Как вы узнали, какие версии скачивать? - person Rakib; 23.06.2015
comment
@rakib скрипт настройки перечисляет их как ошибки, если не обнаружены ни gmp, ни mpfr - person Denis; 23.06.2015

Я обнаружил, что если я запускал export C_INCLUDE_PATH=/cross/gcc-4.5.2/mpfr/src, затем export LD_LIBRARY_PATH=/cross/build-gcc-4.5.2/mpfr/src/.libs и, наконец, export LIBRARY_PATH=$LD_LIBRARY_PATH, все работало, как ожидалось.

Возникает вопрос, почему собственные скрипты настройки gcc неправильно устанавливают флаги. Он должен знать, что библиотеки mpfr находятся не в mpfr / .libs, а в mpfr / src / .libs, однако он передает первые в mpc / configure.

person Robert Mason    schedule 16.02.2012
comment
У меня была (и у меня) такая же проблема со сборкой gcc в Windows с помощью MinGW / msys. Экспорт / установка этих переменных, как было предложено, в моем случае не помогли. Важны ли правильное время и порядок их установки, или я могу еще что-нибудь проверить? - person René Nyffenegger; 24.03.2012
comment
Я не знаю, проверены ли LD_LIBRARY_PATH / LIBRARY_PATH / C_INCLUDE_PATH в окнах. Вы можете попробовать отредактировать make-файл и добавить туда опции -I и -L в CFLAGS. - person Robert Mason; 24.03.2012
comment
Это изменилось в MPFR 3.1 (расположение заголовка), поэтому GCC использует старую версию. Более новая версия строго не поддерживается, на странице загрузки инфраструктуры GCC все еще есть версия 2.4.2 в списке. - person rubenvb; 26.04.2012
comment
Спасибо, это объясняет @rubenvb. Хотя я удивлен, что у них нет какого-то взлома autotools, чтобы заставить его распознавать структуру каталогов для MPFR 3.1. Похоже, что они совместимы со всеми версиями каждой программы, написанной с 90-х годов, или что это за гигантские скрипты конфигурации: P - person Robert Mason; 27.04.2012

Попробуйте это при настройке:

./configure --prefix=<DIR YOU WANT TO INSTALL GCC> \
--with-gmp=<DIRECTORY YOU INSTALLED GMP> \
--with-mpc=<MPC DIR> --with-mpfr=<MPFR DIR>
person Amit Nag    schedule 23.07.2012

У меня была такая же проблема несколько часов, но я решил ее другим способом.

Я удалил все старые папки, такие как gcc-4. * И gcc-build, потому что внутри была старая конфигурация. После этого я снова проверил с помощью version-check.sh, все ли в нужном месте.

Я использовал Debian, но в нем отсутствовали bison и gnu awk! Зачем? Я снова установил их и начал с установки gcc. Теперь все в порядке.

Возможно, у вас есть похожая проблема, которую можно решить таким же образом. Мне нужно проверять каждый раз, когда я запускаю vbox, и, возможно, это проблема с моим vbox-изображением, поэтому, когда я запускаю vbox, я запускаю проверку версий.

person nemesis2009    schedule 01.10.2012

вместо --with-mpfr = я использовал --with-mpfr-lib = your-mprf-dir / lib (64?) --with-mpfr-include = your-mprf-dir / include.

У меня это работает. PS: mprf-3.1.0 gmp-5.0.2 mpc-0.9

person a'Q    schedule 29.08.2013

Не нужно пробовать вот так:

./configure \
--with-gmp=/opt/install/local\
--with-mpfr=/opt/install/local \
--with-mpc=/opt/install/local \
--with-gmp-include=/opt/install/build/gmp-6.0.0 \
--with-mpfr-include=/opt/install/build/mpfr-3.1.2/src \
--with-mpc-include=/opt/install/build/mpc-1.0.2/src --enable-languages=c,c++
person yet    schedule 21.07.2014