Подтвердить что ты не робот

Как передать флаг gcc в Python setup.py script?

Я пишу расширение Python в C, которое требует рамки CoreFoundation (между прочим). Это компилируется с помощью:

gcc -o foo foo.c -framework CoreFoundation -framework Python

( "- framework" - это расширение gcc только для Apple, но это нормально, потому что я использую их конкретную фреймворк)

Как сообщить setup.py передать этот флаг в gcc?

Я пробовал это, но он, похоже, не работает (он компилируется, но затем жалуется на символы undefined, когда я пытаюсь запустить его):

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'])])

Edit:

Это работает:

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'])])
4b9b3361

Ответ 1

Возможно, вам нужно установить extra_link_args тоже? extra_compile_args используется при компиляции исходного кода extra_link_args при связывании результата.