如何在Python的setup.py脚本中传递标志给gcc?
我正在用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_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 个回答
19
也许你还需要设置一下 extra_link_args
呢? extra_compile_args
是在编译源代码的时候用的,而 extra_link_args
是在把编译结果链接起来的时候用的。