2009-11-04 22 views
17

CoreFoundation çerçevesini (diğer şeyler arasında) gerektiren C dilinde bir Python uzantısı yazdım. Bu ince derler:Python setup.py betiğinde gcc'ye bayrak nasıl iletilir?

gcc -o foo foo.c -framework CoreFoundation -framework Python 

("-Çerçeve" Apple okunur gcc uzantısıdır, ama yine kendi özel çerçeve kullandığım için bu sorun değil) ben setup.py söylemek nasıl

bu bayrağa gcc geçmek?

Bunu denedim, ama (o derler, ama bunu çalıştırmayı denediğinizde daha sonra tanımlanmamış sembollerin şikayet) çalışmak için görünmüyor:

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

Düzenleme:

Bu çalıştığı anlaşılıyor:

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

cevap

14

Belki de extra_link_args'u ayarlamanız gerekiyor? extra_compile_args, sonucu bağlarken kaynak kodunu derlerken extra_link_args kullanılır.

+0

Teşekkürler, ama bunu denedim ve aynı problemi aldım. – Michael

+0

Üzgünüz; "build" dizinini sildikten ve yeniden oluşturduktan sonra işe yaramış gibi görünüyor. Teşekkürler! – Michael

+2

Bunu bulduktan sonra, kullanılabilir argümanların listesini faydalı buldum. http://docs.python.org/distutils/apiref.html?highlight=extension#distutils.core.Extension Beni doğru yönde işaretlediğiniz için teşekkürler. – Joel

İlgili konular