J'essaie d'intégrer python dans mon projet C++. Je dois le faire pour utiliser certaines fonctions qui implémentent le test de Kolmogorov-Smirnov qui ne sont pas disponibles en C++. Pour l'instant j'essaie juste de voir si Xcode est capable de lier et de compiler un programme simple qui embarque Python. Le code que je suis en train de compiler est la suivante:Définir des drapeaux Xcode afin d'intégrer python dans mon projet C++
#include<Python/Python.h>
int main(int argc, const char * argv[]) {
Py_Initialize();
PyObject* variable;
Py_Finalize();
return 0;
}
Pour autant que je peux comprendre des instructions que je l'ai lu ici: 1. Embedding Python in Another Application - 1.6 Compiling and Linking under Unix-like systems et ici: Python/C API Reference Manual - Introduction pour que cela compiler je dois ajouter des drapeaux supplémentaires au compilateur et à l'éditeur de liens.
Pour savoir quels drapeaux dois-je ajouter, j'ai couru les deux commandes suivantes dans mon terminal (dont j'inclus la sortie correspondante):
$ 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
Lorsque j'ai remplacé le nom réel de mon dossier utilisateur avec user
. Maintenant, afin d'ajouter ces drapeaux au compilateur et à l'éditeur de liens Xcode, je suis allé à ma fenêtre de paramètres de projet et sous Build Settings -> Other C Flags
et Build Settings -> Other Linker Flags
j'ai ajouté les drapeaux que j'ai rapportés ci-dessus.
Mais quand je compile je reçois cette erreur:
Apple Mach-O Linker (ld) Error Group
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Et il ne disparaît pas, même si je commente toutes les lignes de la fonction main
à l'exception de return 0
.
Je ne comprends pas ce que je fais mal.
J'utilise Xcode 8.3.2
et ma distribution Python est: Python 3.6.1 |Anaconda 4.4.0