python3 library code python distutils python-c-api

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.