Frage

Ich bin eine Python-Erweiterung in C schreiben, die den Rahmen erfordert Corefoundation (unter anderem). Dies kompiliert fein mit:

gcc -o foo foo.c -framework CoreFoundation -framework Python

( "- Framework" ist eine Apple-nur gcc Erweiterung, aber das ist okay, weil ich ihre spezifische Rahmenbedingungen bin mit sowieso)

Wie kann ich feststellen setup.py dieses Flag zu übergeben gcc?

Ich habe versucht, aber es scheint nicht zu funktionieren (es kompiliert, aber dann klagt über undefinierte 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:

Dies 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'])])
War es hilfreich?

Lösung

Vielleicht brauchen Sie extra_link_args einstellen, auch? extra_compile_args wird verwendet, wenn Sie den Quellcode kompilieren, extra_link_args wenn das Ergebnis verknüpft.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top