Ich schreibe eine Python-Erweiterung in C, die das CoreFoundation-Framework (unter anderem) erfordert. Dies kompiliert fein mit:Wie übergeben Sie Flag in GCC in Python setup.py Skript?
gcc -o foo foo.c -framework CoreFoundation -framework Python
(„-Framework“ ist ein Apple-nur gcc Erweiterung, aber das ist okay, weil ich ihre spezifischen Rahmenbedingungen ohnehin bin mit)
Wie kann ich feststellen setup.py zu Übergeben Sie dieses Flag an gcc?
Ich versuchte dies, aber es scheint nicht zu funktionieren (es kompiliert, aber klagt dann undefinierter Symbole, wenn ich versuche, es zu laufen):
from distutils.core import setup, Extension
setup(name='foo',
version='1.0',
author='Me',
ext_modules=[Extension('foo',
['foo.c'],
extra_compile_args=['-framework CoreFoundation'])])
Edit:
Diese scheint zu funktionieren:
from distutils.core import setup, Extension
setup(name='foo',
version='1.0',
author='Me',
ext_modules=[Extension('foo',
['foo.c'],
extra_link_args=['-framework', 'CoreFoundation'])])
Danke, aber ich habe das versucht und das gleiche Problem bekommen. – Michael
Entschuldigung; Nach dem Löschen des "Build" -Verzeichnisses scheint es zu funktionieren. Vielen Dank! – Michael
Nachdem ich das gefunden hatte, fand ich die Liste der verfügbaren Argumente hilfreich. http://docs.python.org/distutils/apiref.html?highlight=extension#distutils.core.Extension Danke, dass Sie mich in die richtige Richtung weisen. – Joel