2012-02-15 9 views
12

Sto installando gcc 4.5.2 con mpc 0.8.2, mpfr 3.1.0 e gmp 5.0.2. Ho copiato ognuna delle directory mpc, mpfr e gmp nella directory gcc-4.5.2 (rimuovendo i tag di versione). GCC si configura con successo. Quando eseguo fare, però, ottengo:Impossibile configurare gcc - mpfr non trovato

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 si trova in croce/src/gcc-4.5.2/MPFR. MPFR è già stato realizzato con successo. Qualcuno sa perché mpc non è in grado di configurare?

Penso che il problema potrebbe parzialmente avere a che fare con le librerie/lib di MPFR in cross/src/gcc-4.5.2/mpfr/src e non in cross/src/gcc-4.5.2/mpfr. Tutto quello che ho fatto è stato estrarre e copiare però- questa è la struttura di directory predefinita.

risposta

8

Ho scoperto che se avessi eseguito export C_INCLUDE_PATH=/cross/gcc-4.5.2/mpfr/src quindi export LD_LIBRARY_PATH=/cross/build-gcc-4.5.2/mpfr/src/.libs e infine export LIBRARY_PATH=$LD_LIBRARY_PATH, tutto ha funzionato come previsto.

La domanda fastidiosa è perché gli script di configurazione di gcc impostano i flag errati. Dovrebbe sapere che le librerie di mpfr non sono in mpfr/.libs ma in mpfr/src/.libs, tuttavia passa la prima a mpc/configure.

+0

ho avuto (e sto avendo) lo stesso problema con gcc edificio su Windows con MinGW/msys. Esportare/impostare queste variabili come suggerito non ha aiutato nel mio caso. È il momento giusto e l'ordine di impostarli importanti, o c'è qualcos'altro che potrei controllare? –

+0

Non so se LD_LIBRARY_PATH/LIBRARY_PATH/C_INCLUDE_PATH siano spuntati su windows. Potresti provare a modificare il makefile e aggiungere le opzioni -I e -L a CFLAGS. –

+2

Questo è cambiato con MPFR 3.1 (la posizione dell'intestazione), motivo per cui GCC utilizza la versione precedente. La versione più recente non è strettamente supportata, la [pagina di download dell'infrastruttura GCC] (http://mirrors-us.seosue.com/gcc/infrastructure/) ha ancora la versione 2.4.2 elencata. – rubenvb

27

Avevo lo stesso problema. Ma sembra che ciò accada perché l'ultima versione di MPFR (nel tuo caso 3.1.0) ha cambiato la gerarchia delle directory.

Invece, prima di configurare, eseguire il seguente quando si è all'interno di directory di origine gcc (può funzionare solo per gcc4.5.2 o successiva):

./contrib/download_prerequisites 

verrà scaricato il MPFR necessaria, GMP e le versioni MPC (ma probabilmente non le ultime versioni) e decomprimere quelli per l'installazione di gcc.

Dopodiché, è possibile continuare con la configurazione, l'installazione e l'installazione.

Spero che questo aiuti.

-Rakib

+0

Risposta stupenda. Funziona alla grande Non sapevo che le librerie potrebbero essere scaricate automaticamente. –

+1

Se sei su un Mac sostituisci i comandi "wget" nello script con "curl -OL" – gerardw

+1

ottima risposta, tuttavia non ha trovato script download_prerequisites in gcc 4.4, così lo ha fatto manualmente – Denis

3

Prova questo durante la configurazione:

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

Ho avuto lo stesso problema per un paio d'ore, ma ho risolto in un altro altro modo.

Ho eliminato tutte le vecchie cartelle come gcc-4. * E gcc-build, perché all'interno c'era una vecchia configurazione. Successivamente, ho controllato di nuovo con version-check.sh se tutto era nella posizione giusta.

Ho usato Debian e mancava bison e gnu awk! Perché qualunque cosa. Ho installato di nuovo i due e ho iniziato con l'installazione di gcc. Ora tutto è OK.

Perhapse si dispone di un problam simile che può essere risolto nello stesso modo. Devo controllare ogni volta che avvio vbox e forse è un problema con la mia vbox-image, quindi quando avviò vbox eseguo una versione-check.

2

invece di --with-mpfr =, ho usato --with-mpfr-lib = tuo-mprf-dir/lib (64?) --with-mpfr-include = tua-mprf-dir/include.

Questo funziona per me. PS: mprf-3.1.0 gmp-5.0.2 mpc-0.9

0

alcun bisogno si può provare in questo modo:

./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++ 
Problemi correlati