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

如何在Python setup.py脚本中将标志传递给gcc?,python,distutils,python-c-api,Python,Distutils,Python C Api,我正在用C编写一个Python扩展,它需要CoreFoundation框架(以及其他东西)。这可以很好地编译: gcc -o foo foo.c -framework CoreFoundation -framework Python (“-framework”是一个仅适用于苹果的gcc扩展,但这没关系,因为我正在使用他们的特定框架) 如何告诉setup.py将此标志传递给gcc 我尝试过这个,但似乎不起作用(它编译,但在我尝试运行它时,会抱怨未定义的符号): 编辑: 这似乎有效: from d

我正在用C编写一个Python扩展,它需要CoreFoundation框架(以及其他东西)。这可以很好地编译:

gcc -o foo foo.c -framework CoreFoundation -framework Python
(“-framework”是一个仅适用于苹果的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_link_args=['-framework', 'CoreFoundation'])])

也许你也需要设置额外的链接参数<编译源代码时使用code>extra\u compile\u args,链接结果时使用
extra\u link\u args

Sorry;删除“build”目录并重新构建后,它似乎可以工作。谢谢找到这一点后,我发现可用参数列表很有用。谢谢你给我指明了正确的方向。
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'])])