Cómo pasar la bandera a gcc en escritura del pitón setup.py?
-
16-09-2019 - |
Pregunta
Estoy escribiendo una extensión de Python en C que requiere el marco CoreFoundation (entre otras cosas). Este compila bien con:
gcc -o foo foo.c -framework CoreFoundation -framework Python
( "- marco" es una extensión de sólo de Apple gcc, pero eso está bien porque estoy usando su marco específico de todos modos)
¿Cómo le digo setup.py para pasar esta bandera a gcc?
He intentado esto, pero no parece funcionar (compila, pero luego se queja de símbolos no definidos cuando intento ejecutarlo):
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'])])
Editar
Esto parece funcionar:
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'])])
Solución
Tal vez es necesario establecer extra_link_args
, también? extra_compile_args
se utiliza al compilar el código fuente, extra_link_args
al vincular el resultado.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow