Kompilieren von C++ mit SCHLUCK auf Mac OS X
Ich versuche zu kompilieren eines C++ - Erweiterung mit Schluck für Mac OS X. ich habe laufen in einem paar linker Fehler obwohl. Die basic-tutorial für Python Swig scheint auch fehl am Mac:
http://www.swig.org/Doc1.3/Python.html#Python_nn10
swig -c++ -python example.i
g++ -O2 -fPIC -c example.cxx
g++ -O2 -fPIC -c example_wrap.cxx -I/usr/include/python2.6
g++ -shared example.o example_wrap.o -o _example.so
Die ersten drei Zeilen funktionieren. Die Letzte Zeile schlägt mit einem linker-Fehler. Ich habe versucht, die Letzte Zeile auf OS X mit dabei, und bekam den gleichen Fehler:
g++ -dynamiclib example.o example_wrap.o -o _example.so
Den Fehler aus der letzten Zeile ist:
Undefined symbols for architecture x86_64:
"_PyArg_ParseTuple", referenced from:
__wrap_fact in example_wrap.o
"_PyArg_UnpackTuple", referenced from:
_SwigPyObject_own in example_wrap.o
"_PyBool_FromLong", referenced from:
_SwigPyObject_richcompare in example_wrap.o
_SwigPyObject_own in example_wrap.o
...
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status
Dank.
-lpython
am Ende der compile-Zeile sollte die Adresse der Verknüpfung von Problem, aber Mac shared objects die extension.dylib
- Danke, @Petesh -- das funktioniert! Ich war immer aufgehängt auf ein anderes Problem mit meinem Haupt-Schluck-code (undefinierten Symbole für einige Funktionen, die ich auskommentiert in der tiefen Zug.ich Datei). Basic-Schluck-Funktionen funktioniert nun.
- Uuuuund wieder die Nähe-sinnvoll-thread fairys Streik. Dies ist ein häufiges und weites problem, die Arbeit mit mehreren SWIG-basierten Bibliotheken, wenn Sie auf einem mac. Warum zum Teufel würde man es schließen?!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Vollständigkeit halber -- danke Petesh.