Как передать флаг в gcc в скрипте Python setup.py?
-
16-09-2019 - |
Вопрос
Я пишу расширение Python на C, для которого требуется платформа CoreFoundation (помимо прочего).Это прекрасно компилируется с:
gcc -o foo foo.c -framework CoreFoundation -framework Python
(«-framework» — это расширение gcc, предназначенное только для Apple, но это нормально, потому что я все равно использую их конкретную структуру)
Как мне сообщить setup.py передать этот флаг в gcc?
Я попробовал это, но, похоже, это не работает (он компилируется, но затем жалуется на неопределенные символы, когда я пытаюсь его запустить):
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'])])
Редактировать:
Кажется, это работает:
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'])])
Решение
Возможно, вам нужно установить extra_link_args
, слишком? extra_compile_args
используется при компиляции исходного кода, extra_link_args
при связывании результата.
Не связан с StackOverflow