23

CoreFoundation フレームワーク (とりわけ) を必要とする Python 拡張機能を C で作成しています。これは次のようにコンパイルできます:

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

1 に答える 1

19

多分あなたも設定する必要がありextra_link_argsますか?extra_compile_argsソースコードをコンパイルするextra_link_argsとき、結果をリンクするときに使用されます。

于 2009-11-04T20:30:52.343 に答える