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'])])
Foi útil?

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
scroll top