0

私は distutils を悪用して Python の拡張モジュールをコンパイルしていますが、Python C API を使用するのではなく、ctypes を使用して結果の共有ライブラリと対話しています。

これは、共有ライブラリ内のすべてのシンボルを自動的にエクスポートするため、Linux では正常に機能しますが、Windows では、distutils は.defPython モジュールの init 関数のみをエクスポートする を提供します。

distutils を拡張.defして Windows で独自のものを提供し、必要なシンボルをエクスポートするにはどうすればよいですか?

4

1 に答える 1

1

MingwのGCCを使用している場合は、extra_link_argsとして['-Wl、-export-all-symbols']を渡すことができます。IDEのどこかに、おそらくVisualにも同様の設定があります。

これは、distutilsが「dllwrap」の代わりに「gcc-mdll」をリンカーとして使用することを選択した場合にのみ機能します。これは、古いバージョンが2.10.90より後の場合に行われます。これは、最近のMingwを使用している場合に当てはまります。最初は、バージョン解析に関連する小さなバグがあるPython 2.2を使用したため、機能しませんでした。ドットで区切られた3つの数値が必要なため、古いバージョンが2.20の場合はdllwrapにフォールバックします...

于 2010-02-25T14:56:25.067 に答える