Comment passer de gcc dans le script Python?
-
16-09-2019 - |
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'])])
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