0

このページでは、各 Python バージョンに必要な Microsoft Visual C++ コンパイラのさまざまなバージョンについて説明しています: https://wiki.python.org/moin/WindowsCompilers

Microsoft の代わりに MinGW を使用して 64 ビット Windows 8.1 用の C ライブラリをコンパイルしたいのですが、MinGW-w64/mingwpy は Python 3.5 をサポートしていないことを読みました: Make cffi use MinGW under Python 3.5 on Windows

Windows へのクロス コンパイルについてはhttp://mxe.cc/も参照しますが、これも MinGW-w64 ツールチェーンを使用しています。

Python インターフェイスに CFFI の ABI インライン モードを使用する場合、C ライブラリ用の DLL を 1 回コンパイルして (Microsoft Visual C++ 10.0 との互換性がある)、それを Python 3.4 と 3.5 の両方で使用できますか? その場合、DLL への静的リンクにより、Python 3.5 との互換性が達成されますか? 動的リンクと静的リンクの微妙な点がわかりません。

4

1 に答える 1

0

CFFI の ABI インライン モードを使用する場合は、何もコンパイルする必要はありません。Windows 用にプリコンパイルされた CFFI をインストールするだけです。

推奨CFFIのAPIモードを使用する場合、コンパイラが必要です。Windows の完全な要件は複雑すぎて意味がわかりませんが、CFFI で生成された拡張モジュールは、CPython が「安定 ABI」モードと呼ぶモードでコンパイルする必要があることに注意してください。つまり.pyd、CPython 3.x のすべてのバージョンに対して 1 つのコンパイルで十分です。適切なコンパイラ ツールチェーンを持っている CPython のバージョンを選択し、それを使用して.pyd.

于 2016-11-22T11:10:33.397 に答える