[PYTHON] Verwendung von gcc beim Kompilieren einer Erweiterung aus setup.py auf einem Mac

Erstellen Sie beim Binden von C ++ - Code mit swig ein gemeinsames Objekt mit setup.py. Wenn ich versuche, dies unter Mac OS X zu tun, wird die Bibliothek selbst mit g ++ kompiliert. Wenn ich jedoch versuche, sie mit Clang zu kompilieren, wird eine Fehlermeldung angezeigt.

So was.

$ python setup.py build_ext             
running build_ext
building '_Mykytea' extension
cc -fno-strict-aliasing -fno-common -dynamic -arch i386 -arch x86_64 -I/usr/local/include -I/usr/local/opt/sqlite/include -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I/usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/include/python2.7 -c mykytea_wrap.cxx -o build/temp.macosx-10.8-intel-2.7/mykytea_wrap.o
(Abkürzung)
In file included from mykytea_wrap.cxx:3481:
In file included from ./mykytea.hpp:9:
/usr/local/include/kytea/kytea.h:128:24: error: implicit instantiation of undefined template
      'kytea::Dictionary<kytea::ModelTagEntry>'
        if(dict_ != 0) delete dict_;
                       ^
/usr/local/include/kytea/kytea.h:34:26: note: template is declared here
template <class T> class Dictionary;
                         ^
2 warnings and 1 error generated.
error: command 'cc' failed with exit status 1

Wenn Sie Clang nicht anrufen, können Sie es in Ruhe lassen und mit gcc kompilieren.

 $ ARCHFLAGS="-arch x86_64" CC=gcc CXX=g++ python setup.py build_ext

Und es ist ausreichend.

Eigentlich ist es vielleicht besser, es in setup.py zu schreiben, aber ich frage mich, ob es möglich ist, dynamisch zu bestimmen, womit die ursprüngliche Bibliothek kompiliert wurde.

Herzlichen Glückwunsch Kyteas Python-Bindung ist jetzt mit der neuesten Version 0.4.4 kompatibel.

Recommended Posts

Verwendung von gcc beim Kompilieren einer Erweiterung aus setup.py auf einem Mac
Wie man SWIG von waf benutzt
So installieren Sie mysql-connector-python auf einem Mac
Verwendung von Dataiku unter Windows
Hinweise zur Verwendung von Pywinauto
Hinweise zur Verwendung von featuretools
So installieren Sie OpenCV auf einem Mac
Wie benutzt man Homebrew in Debian?
Verwenden Sie gcc-4.2 beim Kompilieren von Python (MacOS)
Aktualisieren Sie Mac Python von 2 auf 3
So installieren Sie drobertadams / toggl-cli auf einem Mac
[TF] Verwendung von Tensorboard von Keras
Ich möchte Linux auf dem Mac verwenden
So verwenden Sie Google Assistant unter Windows 10
So löschen Sie Python 2.x auf einem Mac.
Memorandum über die Verwendung von Gremlin Python
Lesen von Umgebungsvariablen aus einer ENV-Datei mit PyCharm (für Mac)
Studie aus Python Hour7: Verwendung von Klassen
Verwendung von Python Kivy ④ ~ Ausführung unter Android ~
Wenn ich versuche, Jupiter Notebook auf einem Mac zu verwenden, kann ich nur Python2 auswählen
Verwenden Sie Tor, um eine Verbindung von urllib2 [Python] [Mac] herzustellen.
Übergeben von Argumenten beim Aufrufen von Python-Skripten über Blender in der Befehlszeile
Vorbereiten der Verwendung von aws cli unter Mac OS X.
Verwendung von Keras ~ Von der einfachen Modellgenerierung bis zum CNN ~
[Ansible] Verwendung der SSH-Kennwortauthentifizierung bei der Ausführung von ansible
Verwendung von C216 Audio Controller unter Arch Linux
Hinweise zur Verwendung beim Kombinieren von pandas.DataFrame
Einstellungen zum Generieren animierter GIFs aus Python auf dem Mac
Verwendung des Azure Table-Speichers von Django (PTVS)
Ein Memorandum zur Verwendung von Keras 'keras.preprocessing.image
Verwendung von TensorFlow auf GPUs unter Titan
Beenden bei Verwendung von Python in Terminal (Mac)
Autoencoder im Chainer (Hinweise zur Verwendung von + Trainer)
Verwendung von Django mit Google App Engine / Python
[Tipps] Verwendung des iPhone als Webkamera unter Linux
Verwendung von xml.etree.ElementTree
Wie benutzt man Python-Shell
Hinweise zur Verwendung von tf.data
Verwendung von virtualenv
Wie benutzt man Seaboan?
Verwendung von Image-Match
Wie man Shogun benutzt
Verwendung von Pandas 2
Verwendung von numpy.vectorize
Verwendung von pytest_report_header
Wie man teilweise verwendet
Wie man Bio.Phylo benutzt
Verwendung von SymPy
Wie man x-means benutzt
Verwendung von WikiExtractor.py
Verwendung von IPython
Verwendung von virtualenv
Wie benutzt man Matplotlib?
Verwendung von iptables
Wie benutzt man numpy?
Verwendung von TokyoTechFes2015
Wie benutzt man venv
Verwendung des Wörterbuchs {}
Wie benutzt man Pyenv?
Verwendung der Liste []