I'm writing a Python extension in C that requires the CoreFoundation framework (among other things). This compiles fine with:
gcc -o foo foo.c -framework CoreFoundation -framework Python
("-framework" is an Apple-only gcc extension, but that's okay because I'm using their specific framework anyway)
How do I tell setup.py to pass this flag to gcc?
I tried this, but it doesn't seem to work (it compiles, but then complains of undefined symbols when I try to run it):
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'])])
Edit:
This appears to work:
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'])])
Maybe you need to set extra_link_args
, too? extra_compile_args
is used when compiling the source code, extra_link_args
when linking the result.