Pregunta

Estoy intentando cruzar-compilación de GCC en Mac OS 10.5.7. He utilizado este comando para configurar después de instalar GCC 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

Tengo este error:

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?

¿Fue útil?

Solución

Sospecho que el problema puede ser que las bibliotecas son de 32 bits cuando usted está tratando de construir un compilador de 64 bits, o viceversa.

I fue capaz de construir GCC 4.5.1 en Mac OS X 10.6.4 recientemente, pero construido e instalado el GMP, MPFR y MPC bibliotecas mismo - en /usr/gnu64 (una ubicación no estándar que utilizo para cosas que instalo para mi propio beneficio). También utilicé la opción de configuración:

CC='gcc -m64'

para forzar una acumulación de 64 bits. He tenido problemas similares en Linux (además de un problema con una expresión regular en opt-functions.awk - arreglado fácilmente con dos copias de barras delante de una llave de apertura) y se encontró que no había cambios a las bibliotecas MPFR y MPC ya he construido en 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 un poco la metodología. Lo que ahora no se documenta en instalar GNU GCC en Mac . Básicamente, consigo las versiones actuales de GMP, MPC, MPFR y poner su código fuente en el directorio de origen del CCG, y dejar que GCC compilar las bibliotecas por sí mismo. Esto hace acuerdo del CCG con la localización de las bibliotecas.

Otros consejos

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

Yo tenía el mismo problema al intentar gcc-4.6.0 compilación de OX 10.6.6. Yo estaba usando gmp-4.3.2; utilizando en su lugar gmp-5.0.1, el script de configuración parece adivinar correctamente "CC = gcc -std = gnu99 CFLAGS = -O2 -pedantic -m64 -mtune = Core2 -march = Core2", y pasa que a MPFR (3.0. 1) y MPC (0,9), por lo que cualquier persona que utilice estos últimos o más versiones no debe recibir este error.

Yo sugeriría la instalación de GMP, MPFR y MPC descargándolos de sus sitios web. A continuación, ejecute ./configure (en la carpeta donde están los archivos descargados) y sudo make install.

GCC debería compilar entonces en Mac OS X (león de montaña).

Tenga en cuenta que depende de mpc MPFR y GMP.

Me usó para compilar piñón kernel en Mac OSX.

Con los puertos mac MPFR, libmpc y GMP instalado, 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 

Esta fue compilar una TI MSP430 cadena de herramientas.

Yo sólo resolvió un problema similar. Desde mi CPU es x86_64, pero mi sistema operativo es de 32 bits, cuando instalo GMP (5.0.2), se intenta configurar en 64 bits. Así que recompilado mi GMP con la configuración como ABI = 32 ./configure ... entonces este problema GCC desapareció.

Had problema similar en Ubuntu 16.04 64 bits. Resuelto mediante el uso mpc-1.0.1.tar.gz, MPFR-3.1.6.tar.xz y GMP-6.1.2.tar.xz

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top