web-dev-qa-db-ja.com

Visual Studio2010からSWIGを使用してDLL)を作成する方法

私は何週間もの間、Microsoft Visual Studio2010でSWIGを使用してDLLを作成するように努めてきました。すでにこのプロセスを完了している場合は、思いやりを持っていただけませんか。ステップバイステップのプロセスの説明?私はオンラインのいたるところを見て、これを行うために何時間も費やしましたが、私が見つけたチュートリアルはすべて古くなっているか、説明が不十分です。

私はcygwinでこのプロセスを実行することに成功しました。しかし、ご存知の方もいらっしゃると思いますが、cygwin DLLはあまり実用的ではありません。

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

他のサイトを紹介しないでください。私はすでにそこに行ってそれを試した可能性があるからです。また、近い将来これを機能させることが非常に重要なので、卑劣なコメントはしないでください。

よろしくお願いします!

20
user1449530

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

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

  1. Visual Studio2010を起動します
  2. ファイル、新規、既存のコードからのプロジェクト...
  3. 「VisualC++」プロジェクトタイプを選択し、「次へ」をクリックします。
  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. プロジェクトを右クリックし、[追加]、[新しいフィルター]の順にクリックして、「生成されたファイル」という名前を付けます。
  18. [生成されたファイル]を右クリックし、[プロパティ]をクリックして、[SCCファイル]を[False]に設定します(source-controlを使用すると、VS2010がこのフィルターで生成されたファイルをチェックインしようとしなくなります)。
  19. 「生成されたファイル」、「追加」、「終了アイテム」を右クリックし、コンパイルによって生成された_wrap.cxxファイルを選択します。
  20. プロジェクトの[プロパティ]を右クリックします。
  21. 構成「すべての構成」を選択します。
  22. [構成プロパティ]、[リンカー]、[一般]、[追加のライブラリディレクトリ]を選択し、パスをpythonライブラリ(通常は "C:\ Python27\libs")に追加します。
  23. 「構成プロパティー」、「一般」を選択し、TargetNameを「_ $(ProjectName)」に設定します。
  24. ターゲット拡張子を「.pyd」に設定します。
  25. プロジェクトの「リリース」バージョンをビルドします。 Python自体のデバッグバージョンをビルドしない限り、デバッグバージョンをビルドすることはできません。
  26. コンソールを開き、プロジェクトのリリースディレクトリに移動し、Pythonを実行し、モジュールをインポートして、関数を呼び出します。
49
Mark Tolonen