2010-08-18 3 views
7

Я пытаюсь перекрестно скомпилировать GCC на Mac OS 10.5.7. Я использовал эту команду, чтобы настроить GCC после установки GMP, MPFR и MPC:GCC не может найти библиотеки GMP, MPFR и MPC

../gcc-4.5.0/configure --target=$i586-elf --prefix=/usr/local/cross \ 
    --disable-nls \ 
    --enable-languages=c,c++,fortran,java,objc,obj-c++,treelang,ada \ 
    --without-headers --with-libiconv-prefix=/opt/local --with-gmp=/usr/local \ 
    --with-mpfr=/usr/local --with-mpc=/usr/local 

Я получил эту ошибку:

checking for the correct version of gmp.h... buggy but acceptable 
checking for the correct version of mpfr.h... yes 
checking for the correct version of mpc.h... yes 
checking for the correct version of the gmp/mpfr/mpc libraries... 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. 

Почему бы GCC найти заголовки GMP, MPFR и ПДК, но не библиотеки?

+0

У меня была такая же проблема, пытаясь построить Linux From Scratch D: – Chiggins

ответ

6

Я подозреваю, что проблема может заключаться в том, что библиотеки предназначены для 32-разрядных, когда вы пытаетесь построить 64-разрядный компилятор, или наоборот.

В последнее время мне удалось построить GCC 4.5.1 на MacOS X 10.6.4, но я сам создал и установил библиотеки GMP, MPFR и MPC - в /usr/gnu64 (нестандартное местоположение, которое я использую для вещей, которые я установите для моей выгоды). Я также использовал вариант конфигурации:

CC='gcc -m64' 

, чтобы заставить 64-битную сборку. У меня были аналогичные проблемы с Linux (плюс проблема с регулярным выражением в opt-functions.awk - легко исправлена ​​с двумя обратными косыми чертами перед открытой фигурной скобкой) и обнаружил, что с обновлениями библиотеки MPFR и MPC появились обновления MacOS X:

  • GMP 5.0.1 (вместо 4.2.4)
  • ПДК 0.8.2 (вместо 0.8.1)
  • MPFR 3.0.0 (вместо 2.4.2)

Поскольку я написал это, я изменил свою методологию someha т. То, что я сейчас делаю, зарегистрировано в Install GNU GCC on Mac. В основном, я получаю текущие версии GMP, MPC, MPFR и помещаю их исходный код в исходный каталог GCC и позволяю GCC компилировать библиотеки для себя. Это делает GCC сделкой с поиском библиотек.

+0

I использовал 'CC = gcc -m64'', и он работал – None

+2

, где вы положили CC = gcc -m64 '? Я новичок в Linux ... – 2011-01-26 14:47:59

+0

Любое из двух мест: 'CC =" gcc -m64 "../gcc-4.5.1/configure ...' или вы можете указать его как аргумент: '../gcc-4.5.1/configure CC =" gcc -m64 "...'. Обе работы; Обычно я использую его как переменную среды (перед командой). Если вы используете морскую раковину (tcsh и т. Д.), Используйте форму аргумента. –

2

У меня была такая же проблема, пытаясь скомпилировать gcc-4.6.0 на OX 10.6.6. Я использовал gmp-4.3.2; используя gmp-5.0.1, скрипт configure корректно догадывается: «CC = gcc -std = gnu99 CFLAGS = -O2 -pedantic -m64 -mtune = core2 -march = core2» и передает это на mpfr (3.0. 1) и mpc (0,9), поэтому любой, кто использует эти или более последние версии, не должен получать эту ошибку.

5

Вы должны использовать

with-gmp=/usr/local/include \ 
    --with-mpfr=/usr/local/include --with-mpc=/usr/local/include 

вместо

with-gmp=/usr/local \ 
    --with-mpfr=/usr/local --with-mpc=/usr/local 
+1

Неправильное использование. В сценарии './Configure' GCC указано, что' --with-mpc = PATH' является 'эквивалентом -with-mpc-include = PATH/include plus -with-mpc-lib = PATH/lib', и тот же точная формулировка для '--with-gmp' и' --with-mpfr' – uxp

0

С портами макинтош MPFR, libmpc и ГМП установлен, я был в состоянии лавировать это на конфигурационном скрипте:

--with-mpc=/opt/local/var/macports/software/libmpc/0.8.2_0/opt/local 
--with-gmp=/opt/local/var/macports/software/gmp/5.0.1_0/opt/local 
--with-mpfr=/opt/local/var/macports/software/mpfr/3.0.0-p8_0/opt/local 

Это была компиляция инструментальной цепочки ti msp430.

0

Я просто решил аналогичную проблему. Так как мой процессор - x86_64, но моя ОС 32bit, когда я устанавливаю GMP (5.0.2), он пытается настроить на 64-битной. Поэтому я перекомпилировал свой GMP с конфигурацией, подобной ABI = 32 ./configure ... тогда эта проблема GCC исчезла.

1

Я бы предложил установить gmp, mpfr и mpc, загрузив их со своих веб-сайтов и затем выполнив./ Congifure (в папке, в которой файлы скачанного), а затем Sudo сделать установку

GCC компилируется затем на Mac OS X (горный лев)

Обратите внимание, что MPC зависит от MPFR и ГМП

Я это для компиляции ядра шестерни на mac os x

0

Имела аналогичную проблему в Ubuntu 16.04 64 бит. Выбрано с помощью mpc-1.0.1.tar.gz, mpfr-3.1.6.tar.xz и gmp-6.1.2.tar.xz

Смежные вопросы