code - using c library in python
¿Cómo pasar la bandera a gcc en el script setup.py de Python? (1)
Estoy escribiendo una extensión de Python en C que requiere el marco CoreFoundation (entre otras cosas). Esto compila bien con:
gcc -o foo foo.c -framework CoreFoundation -framework Python
("-framework" es una extensión gcc solo para Apple, pero está bien porque de todos modos estoy usando su marco específico)
¿Cómo le digo a setup.py que pase esta bandera a gcc?
Intenté esto, pero no parece funcionar (se compila, pero luego se queja de símbolos indefinidos 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''])])
¿Quizás también necesitas configurar extra_link_args
? extra_compile_args
se utiliza al compilar el código fuente, extra_link_args
al vincular el resultado.