Far sì che MPFR si basi su Cygwin
Domanda
Ho passato l'intera giornata a configurare GCC come da
http://cygwin.wikia.com/wiki/How_to_install_GCC_4.3.0
Nel passo di GCC, mi ha detto che aveva bisogno di un compilatore C ++ per continuare per qualsiasi motivo, quindi ho aggiornato Cygwin nel solito modo e ho ottenuto GCC-C ++.
Successivamente, cgywin mi ha fatto la cortesia di eliminare le 3 librerie prereq che avevo installato in precedenza,
Quindi ho iniziato a rifarli.GMP ha funzionato bene e poi sono arrivato a MPFR.Per qualsiasi motivo MPFR lancia questo errore:
configure: error: libgmp not found or uses a different ABI.
Le risorse menzionano questo errore Qui.
Sono abbastanza sicuro che GMP sia stato trovato correttamente poiché cygcheck lo mostra senza problemi e la configurazione menziona persino che lo trova.
Quando provo:
./configure --with-gmp-build=/gmp/,
lancia:
error: header files gmp-impl.h and longlong.h not found
Finora non sono riuscito a far funzionare MPFR, nonostante abbia cercato su Google e provato per ore.
Anche MPC non riesce a trovare GMP nel solito modo.
Ho anche provato a consegnare le librerie a GCC in una sottodirectory e lasciargli la compilazione.
Quando lo provo, arriva al passaggio make, quindi lancia a stage1-bubble
errore e fallisce.Nessuna descrizione dell'errore o altro.
Non ho idea di cos'altro provare.
Soluzione
So che questo post è un po' datato, ma stavo cercando una risposta o dei risultati per una situazione simile ma con versioni molto più attuali delle stesse librerie.Durante la lettura di questo post, di alcuni suggerimenti e di altro materiale online, sono riuscito a mettere insieme tutto.Quindi, per chiunque stia lavorando con le versioni più recenti, ecco qui:
Per prima cosa probabilmente vorrai configurare, creare e installare prima GMP sia per C che per C++ come librerie statiche;prendere nota anche dell'architettura x86 o x64.Una volta eseguito make, make check, make install;e sei sicuro di non avere errori, quindi quando andrai a configurare MPFR vorrai eseguirlo come tale:
./configure --with-gmp-build=/path/to/gmp --enable-static --disable-shared
e se i percorsi sono impostati correttamente questo dovrebbe darti il file make generato necessario.
Sono nuovo di zecca negli ambienti e nei comandi Unix-Posix e nuovo in Cygwin.Ho utilizzato principalmente piattaforme Windows e pochissimi Mac o Apple.In realtà ci sto lavorando da poco meno di una settimana perché sto cercando di fare la stessa cosa.Quindi ora mi sto avventurando in un mondo completamente nuovo di Unix...ma è in qualche modo simulato tramite Cygwin poiché sto ancora utilizzando Windows.
Sto cercando di creare GMP, MPIR, MPFR e MPFRC++ tutti dalle ultime distribuzioni originali e alla fine proverò a integrarli in Visual Studio 2017.
In realtà avevo trovato questo post perché ero in grado di creare MPIR tramite Visual Studio con l'aiuto di Python e Vyasm, ma per quanto riguarda GMP avevo bisogno di Cygwin con GCC.Mi ci è voluto un po' di tempo per capire come costruire correttamente GMP, ma una volta fatto ed eseguito i test sono riuscito a farli passare tutti con 0 errori.Poi ho iniziato a lavorare con MPFR come te.
Il mio problema simile si è verificato dopo aver eseguito ./configure come predefinito, mi dava il messaggio che libgmp non è stato trovato.Inoltre, se provassi a chiamare make, non farebbe nulla poiché il file make non esiste.Questo mi ha portato di nuovo a fare ricerche su Google...Durante la ricerca di suggerimenti, suggerimenti, ecc.Mi sono imbattuto in questa domanda/risposta.Mentre leggevo questa domanda/risposta, i file di installazione, alcune altre domande frequenti e persino un altro sito Web, sono riuscito a mettere insieme tutto e ho scoperto che funziona è ciò che ho suggerito sopra.
Non solo devi impostare il flag --with-gmp-build ma devi anche impostare i tipi di libreria appropriati con cui è stato creato gmp e devi assicurarti che anche i tipi di architettura corrispondano.Devono avere gli stessi ABI corrispondenti.
Ah, proprio mentre stavo per finire di scrivere questa risposta, ho appena finito di eseguire il controllo su Cygwin e ho il risultato di:
Testsuite summary for MPFR 4.0.1
============================================================================
# TOTAL: 180
# PASS: 180
# SKIP: 0
# XFAIL: 0
# FAIL: 0
# XPASS: 0
# ERROR: 0
============================================================================
Spero che questo ti aiuti.L'unica cosa è per me stesso;Dovrò tornare indietro e probabilmente eseguire di nuovo tutto dall'inizio, incluso GMP, solo perché credo di aver eseguito solo GCC e non G++ e il mio prossimo passo è provare a creare MPFRC++.
Quindi potrei provare a creare alcune librerie correlate da Qui dopo.La mia prima fase è provare a costruirli tutti tramite Cygwin e GCC/G++.Il passaggio successivo sarà provare a trasferirli su Visual Studio 2017.
Altri suggerimenti
Dopo aver compilato e installare GMP, ho avuto lo stesso problema a costruire MPFR fino a quando non ho impostato correttamente il percorso di ricerca della libreria:
export LD_LIBRARY_PATH=/usr/local/lib
export LIBRARY_PATH=/usr/local/lib
export CPATH=/usr/local/include
.
Come è spiegato in http://cygwin.wikia.com/wiki/how_to_install_gcc_4.3.0
Instead of this:
./configure --with-gmp-build=/gmp/
USE THIS:
./configure --with-gmp-build=/gmp
It doesn't like having the "/" at the end.
You might want to use --with-gmp-lib=/path/to/gmp/lib/dir