2010-08-18 9 views
7

Estoy intentando compilar de forma cruzada GCC en Mac OS 10.5.7. He utilizado este comando para configurar GCC tras la instalación de GMP, MPFR, y MPC:GCC no puede encontrar bibliotecas GMP, MPFR y 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 

me dio este mensaje:

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. 

Por qué podría GCC encontrar las cabeceras de GMP, MPFR, y MPC, pero no las bibliotecas?

+0

Tuve el mismo problema al tratar de compilar Linux From Scratch D: – Chiggins

Respuesta

6

Sospecho que el problema puede ser que las bibliotecas son para 32 bits cuando intenta compilar un compilador de 64 bits, o viceversa.

Pude construir GCC 4.5.1 en MacOS X 10.6.4 recientemente, pero construí e instalé las bibliotecas GMP, MPFR y MPC yo mismo - en /usr/gnu64 (una ubicación no estándar que uso para cosas que instalar para mi propio beneficio). También utilicé la opción de configuración:

CC='gcc -m64' 

para forzar una compilación de 64 bits. Tuve problemas similares en Linux (además de un problema con una expresión regular en opt-functions.awk, que se solucionó fácilmente con dos barras diagonales delante de una abrazadera abierta) y descubrí que había actualizaciones en las bibliotecas MPFR y MPC desde que construí MacOS X:

  • GMP 5.0.1 (en lugar de 4.2.4)
  • MPC 0.8.2 (en lugar de 0.8.1)
  • MPFR 3.0.0 (en lugar de 2.4.2)

Desde que escribí esto, he cambiado mi metodología somewha t. Lo que ahora hago está documentado en Install GNU GCC on Mac. Básicamente, obtengo las versiones actuales de GMP, MPC, MPFR y coloco su código fuente en el directorio fuente de GCC, y dejo que GCC compile las bibliotecas por sí mismo. Esto hace que GCC se encargue de ubicar las bibliotecas.

+0

I usó 'CC = gcc -m64'' y funcionó – None

+2

donde puso CC = gcc -m64 '? Soy nuevo en Linux ... –

+0

Cualquiera de dos lugares: 'CC =" gcc -m64 "../gcc-4.5.1/configure ...' o puede especificarlo como argumento: '../gcc-4.5.1/configure CC =" gcc -m64 "...'. Ambos trabajan; Normalmente lo uso como una variable de entorno (antes del comando). Si usa un shell de mar (tcsh, etc.), use el formulario de argumento. –

2

Tuve el mismo problema al intentar compilar gcc-4.6.0 en OX 10.6.6. Estaba usando gmp-4.3.2; utilizando en su lugar gmp-5.0.1, la secuencia de comandos configure parece adivinar correctamente "CC = gcc -std = gnu99 CFLAGS = -O2 -pedante -m64 -mtune = core2 -march = core2", y pasa eso a mpfr (3.0. 1) y mpc (0.9), por lo que cualquiera que use estas o más versiones recientes no debería obtener este error.

5

Debe utilizar

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

en lugar de

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

Esto no es correcto. La secuencia de comandos './Configure' de GCC establece que' --with-mpc = PATH' es 'Equivalente a --with-mpc-include = PATH/include plus --with-mpc-lib = PATH/lib', y el mismo redacción exacta para '--with-gmp' y' --with-mpfr' – uxp

0

Con los puertos mac MPFR, libmpc y GMP instalados, yo era capaz de virar esto en el script de configuración:

--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 

Esto fue para compilar una cadena de herramientas ti msp430.

0

Acabo de resolver un problema similar. Como mi CPU es x86_64 pero mi sistema operativo es de 32 bits, cuando instalo GMP (5.0.2), intento configurarlo en 64 bits. Así que recompuse mi GMP con una configuración como ABI = 32 ./configure ... luego desapareció este problema de GCC.

1

Sugiero instalar gmp, mpfr y mpc al descargarlos de sus sitios web y luego ejecutarlos./ Congifure (en la carpeta donde están los archivos descargados) y luego sudo make install

GCC debe compilar a continuación, en Mac OS X (león de montaña)

Tenga en cuenta que mpc depende de MPFR y GMP

Solía esto para compilar kernel de piñón en mac os x

0

Tenía un problema similar en Ubuntu 16.04 64 bit. Resolvió usando mpc-1.0.1.tar.gz, mpfr-3.1.6.tar.xz y gmp-6.1.2.tar.xz

Cuestiones relacionadas