22

私は何週間もの間、Microsoft Visual Studio 2010 に SWIG で DLL を作成させようと試みてきました。すでにこのプロセスを完了している場合は、慎重に段階を追ってプロセスを説明していただけますか? 私はオンラインであらゆる場所を調べ、これを行うために何時間も費やしてきました。しかし、私が見つけたすべてのチュートリアルは時代遅れであるか、説明が不十分です。

私は cygwin でこのプロセスを成功させました。しかし、ご存じのとおり、cygwin DLL はあまり実用的ではありません。

その結果、一緒に DLL を作成できることがわかっている .i、.cpp、および .h ファイルがあります。Visual Studio C++ 2010 でこれを行う方法を知る必要があるだけです。私が対象としている言語は Python です。

4

1 に答える 1

55

ステップバイステップの説明。これは、ソースがあり、ソースをソースに直接リンクする単一の DLL 拡張機能を構築していることを前提としています。作業プロジェクトを作成した後、私はそれをやり直さなかったので、何かを見落としている可能性があります。ステップで行き詰まった場合は、この投稿にコメントしてください。既存の DLL があり、それをラップする Python 拡張 DLL を作成する場合、この手順は少し異なります。この投稿のコメントについてサポートが必要な場合は、延長します。

2012 年 8 月 19 日編集: C の例から始める場合は-c++、ステップ 13 で使用せず、ステップ 14 と 19 でラップ ファイル拡張子の.c代わりに使用します。.cxx

  1. Visual Studio 2010 を起動します。
  2. ファイル、新規、既存のコードからのプロジェクト...
  3. 「Visual C++」プロジェクト タイプを選択し、[次へ] をクリックします。
  4. .cpp/.h/.i ファイルがあるプロジェクト ファイルの場所を入力します。
  5. [プロジェクト名] には、.i ファイルの %module ステートメントで使用されている名前を選択します (大文字と小文字が区別されます)。
  6. プロジェクトの種類「動的にリンクされたライブラリ (DLL) プロジェクト」を選択し、[次へ] をクリックします。
  7. インクルード検索パスに Python.h ファイルへのパス (通常は "C:\Python27\include" など) を追加し、[次​​へ] をクリックします。
  8. [完了] をクリックします。
  9. ソリューション エクスプローラーでプロジェクトを右クリックし、[追加]、[既存の項目] の順にクリックして、.i ファイルを選択します。
  10. .i ファイル、[プロパティ] を右クリックし、[構成] [すべての構成] を選択します。
  11. アイテム タイプを「カスタム ビルド ツール」に変更し、[適用] をクリックします。
  12. [プロパティ] で [カスタム ビルド ツール] を選択します (上記の適用後に表示されます)。
  13. 「swig -c++ -python -outdir $(Outdir) %(Identity)」のコマンド ラインを入力します (これは、SWIG がパスにあると想定し、生成された .py ファイルを必要に応じて Debug または Release ディレクトリにリダイレクトします)。
  14. 出力に「%(Filename)_wrap.cxx;$(Outdir)%(Filename).py」と入力します。
  15. [OK] をクリックします。
  16. .i ファイルを右クリックし、[コンパイル] を選択します。
  17. プロジェクトを右クリックし、[追加]、[新しいフィルター] の順にクリックして、「Generated Files」という名前を付けます。
  18. [生成されたファイル] を右クリックし、[プロパティ] をクリックして、[SCC ファイル] を [False] に設定します (ソース管理を使用している場合、VS2010 がこのフィルターで生成されたファイルをチェックインしようとするのを防ぎます)。
  19. 「Generated Files」、「Add」、「Exiting Item」を右クリックし、コンパイルによって生成された _wrap.cxx ファイルを選択します。
  20. プロジェクトを右クリックし、[プロパティ] をクリックします。
  21. 構成「すべての構成」を選択します。
  22. [構成プロパティ]、[リンカー]、[一般]、[追加のライブラリ ディレクトリ] を選択し、Python ライブラリへのパス (通常は "C:\Python27\libs") を追加します。
  23. [構成プロパティ]、[全般] を選択し、TargetName を "_$(ProjectName)" に設定します。
  24. ターゲット拡張子を「.pyd」に設定します。
  25. プロジェクトの「リリース」バージョンをビルドします。Python 自体のデバッグ バージョンをビルドしない限り、デバッグ バージョンをビルドすることはできません。
  26. コンソールを開き、プロジェクトのリリース ディレクトリに移動し、python を実行し、モジュールをインポートして、関数を呼び出します!
于 2012-07-31T03:20:04.867 に答える