2014-04-02 10 views
5

Ho scaricato il file gmp-6.0.0a.tar.xz e decomprimo (tar) nella directory usr/local. Come diceva la gente, ho digitato ./configure, make, make check e sudo make install nella directory gmp-6.0.0. L'installazione sembrava soddisfacente. Ma quando ho provato a testare come questogmp.h errore file non trovato in Xcode, mac

#include <stdio.h> 
#include <gmp.h> 
#include <gmpxx.h> 


int main(int argc, const char * argv[]) 
{ 

    // insert code here... 
    printf("Hello, World!\n"); 
    return 0; 
} 

è errore che gmp.h di file non trovato. Ho aggiunto -lgmp ad altri linker flag ma non funziona.

Non so come affrontare questo tipo di problema. Qualcuno potrebbe aiutare?


Grazie Dietrich Epp. Ora non ho un errore non trovato nel file gmp.h ma Ho il file gmpxx.h non trovato. Non so perché ..

Qualche suggerimento ???

risposta

5

supporto C++ è non attivate per impostazione predefinita durante la configurazione di GMP. Scompattate il pacchetto, e configurare con: ./configure --prefix=/usr/local --enable-cxx - questo sarà anche installare l'intestazione gmpxx.h, e il libgmpxx.dylib e/o libgmpxx.a librerie

Non sono sicuro se l'ultima GMP raccoglie clang per il compilatore C++. È possibile impostare manualmente le variabili di ambiente, ad esempio CC=clang (predefinito C99) e: CXX=clang++ -std=c++11 -stdlib=libc++ (dialetto C++ 11 - passa anche le opzioni C++ 11 al linker). Ancora una volta, questo potrebbe non essere necessario.

Il test, poiché include C++, deve essere creato come un'applicazione C++. Inoltre, libgmpxx.dylib stessa è legata al libgmp.dylib, quindi per un semplice programma di test C++:

$CXX -I/usr/local/include gmptest.cc -o gmptest -L/usr/local/lib -lgmpxx 

dovrebbe essere sufficiente.

Potrebbe essere necessario anteporre /usr/local/lib alla variabile DYLD_LIBRARY_PATH, se altri sistemi installazioni di libreria GMP sono utilizzati prima, a meno che non hardcode biblioteca l'opzione del linker -rpath. Ma è qualcosa di cui preoccuparsi se e quando si presenterà il problema.

+0

funziona !! Grazie mille. Due risposte sono molto grate. Non so quale dovrei accettare. – Q123

5

Prima di tutto, non lo si deve decomprimere in /usr/local. Basta decomprimerlo da qualche parte nella tua home directory (non importa), quindi ./configure; make; make check; sudo make install.

Il problema potrebbe essere causato dal fatto che il compilatore non sta cercando /usr/local/include.

  1. Verificare che /usr/local/include/gmp.h esista. Se non esiste, GMP è installato in modo errato (o installato in una posizione diversa).

  2. Aggiungi -I/usr/local/include alle bandiere del compilatore. In Xcode, questo viene fatto aggiungendo /usr/local/include ai "percorsi di ricerca intestazione aggiuntivi" nelle impostazioni del progetto (o alcune impostazioni del genere).

+0

Grazie per la risposta.Finora funziona. Tuttavia, poiché voglio aggiungere "#include ", ha anche lo stesso problema che il file 'gmpxx.h' non è stato trovato. – Q123