Como passar bandeira para gcc no script Python setup.py?
-
16-09-2019 - |
Pergunta
Eu estou escrevendo uma extensão Python em C que requer a estrutura CoreFoundation (entre outras coisas). Isso compila bem com:
gcc -o foo foo.c -framework CoreFoundation -framework Python
( "- quadro" é um Apple só de extensão gcc, mas tudo bem porque eu estou usando o seu quadro específico de qualquer maneira)
Como posso saber setup.py para passar esta bandeira para gcc?
Eu tentei isso, mas não parece trabalho (ele compila, mas depois se queixa de símbolos indefinidos quando eu tentar executá-lo):
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:
Esta parece trabalho:
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'])])
Solução
Talvez você precisa conjunto extra_link_args
, também? extra_compile_args
é usado quando compilar o código fonte, extra_link_args
ao vincular o resultado.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow