Ich versuche, Python in mein C++ - Projekt einzubetten. Ich muss es tun, um einige Funktionen zu verwenden, die den Kolmogorov-Smirnov-Test implementieren, die in C++ nicht verfügbar sind.Legen Sie Xcode-Flags fest, um Python in mein C++ - Projekt einzubetten
Jetzt versuche ich nur zu sehen, ob Xcode in der Lage ist, ein einfaches Programm zu verlinken und zu kompilieren, das Python einbettet. Der Code, den ich zu kompilieren ich versucht, ist die folgende:
#include<Python/Python.h>
int main(int argc, const char * argv[]) {
Py_Initialize();
PyObject* variable;
Py_Finalize();
return 0;
}
Soweit ich aus den Anweisungen verstehen kann ich hier gelesen habe: 1. Embedding Python in Another Application - 1.6 Compiling and Linking under Unix-like systems und hier: Python/C API Reference Manual - Introduction dafür, um zu kompilieren, muss ich hinzufügen einige zusätzliche Flags für den Compiler und den Linker.
Um heraus zu finden, welche Flags soll ich hinzufügen, habe ich die folgenden zwei Befehle in meinem Terminal läuft (von denen ich schließe die entsprechende Ausgabe):
$ python3.6-config --cflags
-I/Users/user/anaconda3/include/python3.6m -I/Users/user/anaconda3/include/python3.6m -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I/Users/user/anaconda3/include -arch x86_64 -I/Users/user/anaconda3/include -arch x86_64
$ python3.6-config --ldflags
-lpython3.6m -ldl -framework CoreFoundation -Wl,-stack_size,1000000 -framework CoreFoundation
Wo ich die tatsächlichen Namen ersetzt von Mein Benutzerordner mit user
.
Nun, um diese Flags zum Xcode Compiler und Linker hinzuzufügen, ging ich zu meinem Projekteinstellungen Fenster und unter Build Settings -> Other C Flags
und Build Settings -> Other Linker Flags
habe ich die Flags hinzugefügt, die ich oben gemeldet habe.
Aber wenn ich kompilieren ich diesen Fehler:
Apple Mach-O Linker (ld) Error Group
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Und es geht nicht weg, auch wenn ich mit Ausnahme return 0
alle Linien in der main
Funktion kommentieren.
Ich verstehe nicht, was ich falsch mache.
Ich Xcode 8.3.2
und meine Python-Distribution verwenden ist: Python 3.6.1 |Anaconda 4.4.0