Question

J'écris une extension de Python en C qui nécessite le cadre CoreFoundation (entre autres). Cette compile très bien avec:

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

( « - cadre » est une extension gcc Apple uniquement, mais c'est correct parce que je suis en utilisant de toute façon leur cadre spécifique)

Comment puis-je dire setup.py de transmettre ce drapeau à gcc?

J'ai essayé, mais il ne semble pas fonctionner (il compile, mais se plaint alors de symboles non définis lorsque je tente de l'exécuter):

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'])])

Modifier

Cela semble fonctionner:

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'])])
Était-ce utile?

La solution

Peut-être que vous devez définir extra_link_args, aussi? extra_compile_args est utilisé lors de la compilation du code source, extra_link_args lors de la liaison du résultat.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top