2014-04-02 4 views
5

Ich habe heruntergeladen gmp-6.0.0a.tar.xz Datei und entpacken (tar) in usr/local Verzeichnis. Wie die Leute sagten, tippte ich ./configure, make, make check und sudo make install in das Verzeichnis gmp-6.0.0. Installation schien in Ordnung. Aber wenn ich wie diesesgmp.h Datei nicht gefunden Fehler 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; 
} 

zu testen versucht, es hat Fehler, dass gmp.h Datei nicht gefunden. Ich habe -lgmp zu anderen Linker-Flags hinzugefügt, funktioniert aber nicht.

Ich weiß nicht, wie man mit dieser Art von Problem umzugehen. Könnte jemand helfen?


Danke Dietrich Epp. Jetzt habe ich keinen Fehler von nicht gmp.h Datei gefunden aber Ich habe gmpxx.h Datei nicht gefunden. Ich weiß nicht warum.

Jeder Vorschlag ???

Antwort

5

C++ Unterstützung ist nicht standardmäßig aktiviert, wenn GMP konfigurieren. Entpacken Sie das Paket, und konfigurieren Sie mit: ./configure --prefix=/usr/local --enable-cxx - das wird auch die gmpxx.h Header installieren, und die libgmpxx.dylib und/oder libgmpxx.a Bibliotheken

nicht sicher, ob die neuesten GMP aufgreift Klappern für den C++ Compiler. Sie können die Umgebungsvariablen manuell festlegen, z. B. CC=clang (C99-Standard) und: CXX=clang++ -std=c++11 -stdlib=libc++ (C++ 11-Dialekt - übergibt auch C++ 11-Optionen an den Linker). Auch dies könnte unnötig sein.

Ihr Test, da es C++ enthält, muss als C++ - Anwendung erstellt werden. Auch libgmpxx.dylib selbst zu libgmp.dylib verknüpft, so dass für ein einfaches C++ Testprogramm:

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

sollte ausreichend sein.

Es kann notwendig sein /usr/local/lib an die DYLD_LIBRARY_PATH Variable vorangestellt wird, wenn andere System GMP Bibliothek Installationen zunächst verwendet werden, wenn Sie die Bibliothek mit dem Linker -rpath Option codieren. Aber das ist etwas, worüber man sich sorgen muss, wenn und wenn das Problem auftritt.

+0

es funktioniert !! vielen Dank. Zwei Antworten sind sehr dankbar. Ich weiß nicht, welchen ich akzeptieren sollte. – Q123

5

Zuerst sollten Sie es nicht in /usr/local entpacken. Einfach entpacken Sie es irgendwo in Ihrem Home-Verzeichnis (es spielt keine Rolle), dann ./configure; make; make check; sudo make install.

Ihr Problem kann dadurch verursacht werden, dass der Compiler nicht nach /usr/local/include sucht.

  1. Überprüfen, ob /usr/local/include/gmp.h existiert. Wenn es nicht existiert, wird GMP falsch installiert (oder an einem anderen Ort installiert).

  2. Fügen Sie -I/usr/local/include zu Ihren Compilerflags hinzu. In Xcode wird dies durch Hinzufügen von /usr/local/include zu den "zusätzlichen Kopfzeilen-Suchpfaden" in den Projekteinstellungen (oder einer ähnlichen Einstellung) erreicht.

+0

Vielen Dank für Ihre Antwort.Bis jetzt funktioniert es. Da ich aber '#include ' hinzufügen möchte, hat es auch das selbe Problem, dass' gmpxx.h' Datei nicht gefunden wurde. – Q123

Verwandte Themen