Nicht erkannte Befehlszeilenoption '-stdlib = libc ++' mit MacPorts gcc48

8

Kontext

Ich versuche das Paket "root_numpy" zu kompilieren, welches eine Verbindung zwischen der wissenschaftlichen Analyse-Software "root" und dem Python-Paket "numpy" ist. Es wird als Teil des Root Wrappers "rootpy" verwendet. Ich bekomme einen g ++ Fehler, wenn die folgende Zeile ausgeführt wird:

%Vor%

Das gleiche Problem tritt auf, wenn ich ein Programm "Hallo Welt" mit dem Flag kompiliere:

%Vor%

Ohne dieses Flag wird alles gut übersetzt:

%Vor%

Meine Compiler-Version ist:

%Vor%

Als Ergebnis der Ausführung von sudo port install gcc48 . Meine Mac OS Version ist 10.9.3. Die Code-Datei "helloworld.cpp" ist wie erwartet

%Vor%

Frage: Von allem, was ich im Internet sammeln kann, ist das Flag "-stdlib = ..." ein Standard-Teil von g ++. Warum bekomme ich einen g ++ Fehler, wenn ich es einschließe? Wie kann ich das beheben?

Hinweis: Während ich die setup.py-Zeile manuell ausführe, ohne dass das Problem-Flag funktioniert, und das Kompilieren des gesamten Pakets zulässt, erlebe ich Verbindungsfehler, wenn ich versuche, das resultierende Paket in Python zu importieren. Ich bin besorgt, dass das g ++ Problem hier ein Symptom für ein größeres Problem ist, weshalb ich versuche, es direkt zu lösen.

    
user3777020 25.06.2014, 22:46
quelle

1 Antwort

10

-stdlib=libc++ ist eine Clang (nicht GCC) -Option und teilt clang mit, dass LLVM libc ++ - Standardbibliothek verwendet wird (was Clang verwendet) und nicht GNU libstdc ++ (was GCC verwendet).

Da Sie Verknüpfungsfehler erhalten haben, scheint es wahrscheinlich, dass andere Pakete, die Sie verwenden, mit clang und libc ++ kompiliert wurden, was nicht ABI-kompatibel mit GCCs libstdc ++ ist (außer für einige Low-Level-Sachen). Also müssen Sie das Paket auch mit clang und libc ++ kompilieren. Apples Xcode kommt mit clang (was wahrscheinlich das ist, was Sie dafür verwenden möchten), und MacPorts liefert auch eine Anzahl von clang-Distributionen.

    
T.C. 25.06.2014, 22:59
quelle

Tags und Links