如何在Python setup.py脚本中将标志传递给gcc?

时间:2009-11-04 20:24:06

标签: python distutils python-c-api

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

1 个答案:

答案 0 :(得分:15)

也许您还需要设置extra_link_args?在链接结果时编译源代码extra_compile_args时使用extra_link_args