2010-08-18 16 views
7

Sto provando a compilare a croce GCC su Mac OS 10.5.7. Ho usato questo comando per configurare GCC dopo l'installazione di GMP, MPFR, e MPC:GCC non trova librerie GMP, MPFR e 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 

ho ottenuto questo errore:

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. 

Perché potrebbe GCC trovare le intestazioni per GMP, MPFR, e MPC ma non biblioteche?

+0

Ho avuto lo stesso problema cercando di compilare Linux From Scratch D: – Chiggins

risposta

6

Sospetto che il problema potrebbe essere che le librerie sono per 32 bit quando si tenta di creare un compilatore a 64 bit o viceversa.

Sono stato in grado di creare GCC 4.5.1 su MacOS X 10.6.4 di recente, ma ho creato e installato da solo le librerie GMP, MPFR e MPC - in /usr/gnu64 (una posizione non standard che utilizzo per cose che installare a mio vantaggio). Ho anche utilizzato l'opzione di configurazione:

CC='gcc -m64' 

per forzare una build a 64 bit. Ho avuto problemi simili su Linux (più un problema con una regex in opt-functions.awk - risolto facilmente con due barre posteriori di fronte a una parentesi aperta) e ho scoperto che c'erano aggiornamenti alle librerie MPFR e MPC da quando ho costruito MacOS X:

  • GMP 5.0.1 (anziché 4.2.4)
  • MPC 0.8.2 (anziché 0.8.1)
  • MPFR 3.0.0 (anziché 2.4.2)

Da quando ho scritto questo, ho cambiato la mia metodologia in qualche modo t. Quello che faccio ora è documentato in Install GNU GCC on Mac. Fondamentalmente, ottengo le versioni correnti di GMP, MPC, MPFR e inserisco il loro codice sorgente nella directory dei sorgenti GCC, e consegno a GCC di compilare le librerie per se stesso. Questo fa sì che GCC si occupi di localizzare le librerie.

+0

I usato 'CC = gcc -m64'' e ha funzionato – None

+2

dove hai inserito CC = gcc -m64 '? Sono nuovo su Linux ... –

+0

Uno dei due posti: 'CC =" gcc -m64 "../gcc-4.5.1/configure ...' oppure lo si può specificare come argomento: '../gcc-4.5.1/configure CC =" gcc -m64 "...'. Entrambi funzionano; Di solito lo uso come variabile di ambiente (prima del comando). Se usi una shell marina (tcsh, ecc.), Usa il modulo argomento. –

2

Ho avuto lo stesso problema cercando di compilare gcc-4.6.0 su OX 10.6.6. Stavo usando gmp-4.3.2; utilizzando invece gmp-5.0.1, lo script di configurazione sembra indovinare correttamente "CC = gcc -std = gnu99 CFLAGS = -O2 -pedantic -m64 -mtune = core2 -march = core2" e lo passa a mpfr (3.0. 1) e mpc (0.9), quindi chiunque usi queste o più versioni recenti non dovrebbe ottenere questo errore.

5

Si dovrebbe usare

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

invece di

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

Questo non è corretto. Lo script './Configure' di GCC afferma che' --with-mpc = PATH' è 'Equivalente a --with-mpc-include = PATH/include plus --with-mpc-lib = PATH/lib', e lo stesso dicitura esatta per '--with-gmp' e' --with-mpfr' – uxp

0

Le porte mac MPFR, libmpc e gmp installati, sono stato in grado di virare questo sullo script di configurazione:

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

Questo era per compilare una toolchain ti msp430.

0

Ho appena risolto un problema simile. Poiché la mia CPU è x86_64 ma il mio sistema operativo è a 32 bit, quando installo GMP (5.0.2), tenta di configurare a 64 bit. Così ho ricompilato il mio GMP con configurazione come ABI = 32 ./configure ... poi questo problema GCC è scomparso.

1

Suggerisco di installare gmp, mpfr e mpc scaricandoli dai loro siti Web e quindi eseguendo./ Congifure (nella cartella in cui i file scaricati) e poi sudo make install

GCC dovrebbe compilare poi su Mac OS X (Mountain Lion)

noti che MPC dipende MPFR e GMP

ho usato questo per compilare il kernel del pignone su mac os x

0

Aveva un problema simile in Ubuntu 16.04 64 bit. Risolto usando mpc-1.0.1.tar.gz, mpfr-3.1.6.tar.xz e gmp-6.1.2.tar.xz

Problemi correlati