質問

私は(とりわけ)CoreFoundationのフレームワークを必要とするCでのPython拡張を書いています。これは罰金コンパイルします:

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

(「 - フレームワークは、」アップルだけのgccの拡張機能ですが、私はとにかく彼らの特定のフレームワークを使用していますので、それは大丈夫です)。

どのように私は、GCCこのフラグを渡すためにsetup.pyを教えてくれますか?

私はこれを試してみましたが、(それはコンパイルが、私はそれを実行しようとすると、その後、未定義のシンボルを訴える)動作するようには思えない。

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'])])
役に立ちましたか?

解決

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top