Comment passer le drapeau à gcc en Python setup.py le scénario?

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

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

("cadre" est une Pomme-seulement gcc extension, mais c'est bien parce que je suis en utilisant leur cadre spécifique de toute façon)

Comment dire setup.py pour passer ce drapeau au gcc?

j'ai essayé ceci, mais il ne semble pas fonctionner (il compile, mais puis se plaint de symboles non définis lorsque j'essaie d'exécuter c'):

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:

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'])])
18
demandé sur Michael 2009-11-04 23:24:05

1 réponses

Peut-être vous avez besoin de définir extra_link_args, trop? extra_compile_args est utilisé lors de la compilation du code source, extra_link_args lors de la mise en lien du résultat.

15
répondu Lukáš Lalinský 2009-11-04 20:30:52