我在C中编写了一个Python扩展,需要CoreFoundation框架(以及其他内容)。这可以很好地编译:
gcc -o foo foo.c -framework CoreFoundation -framework Python
(“ - framework”是一个仅限Apple的gcc扩展,但这没关系,因为我正在使用他们的特定框架)
如何告诉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'])])
答案 0 :(得分:15)
也许您还需要设置extra_link_args
?在链接结果时编译源代码extra_compile_args
时使用extra_link_args
。