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?!
InformationsquelleAutor Nick S. | 2013-02-08
Schreibe einen Kommentar