1

swig、orgからダウンロードした例を使用して、Visual Studio 2010で最初のSWIG python DLLを作成しようとしています。Windows プロフェッショナル 64 ビットを実行しています。swigwin-2.0.7 をダウンロードして解凍しました。ここここの指示に従いましたが、どちらの場合も、ラップ ファイルはビルドされますが、プロジェクトのビルドは失敗します。リンカは、56 個の未解決の外部シンボルについて不平を言います。すべて __imp__PyBytes_AsStringAndSize や __imp__PyExc_RuntimeError のような名前が付いています。

Python 2.7のインストールとPython 3.2のインストールを使用してこれを試しましたが、同様の結果が得られました。プラットフォームのソースから swig をビルドする必要がありますか? 私は過去 6 時間ほどこれに費やしてきましたが、何の得もありません。

4

1 に答える 1

3

こちらの手順に従って、simpleSWIG、Windows 7 64 ビット、および Python 2.7 32 ビットの Python の例を使用して、OP 固有のエラーは表示されませんでした。私が見た:

1>example_wrap.obj : error LNK2019: unresolved external symbol "int __cdecl gcd(int,int)" (?gcd@@YAHHH@Z) referenced in function __wrap_gcd
1>example_wrap.obj : error LNK2001: unresolved external symbol "double Foo" (?Foo@@3NA)

simpleサンプルが C++ ではなく C ソースであるため、2 つの変更が必要でした。

  1. -c++コマンド ラインでスイッチを使用しないでくださいswig(手順の手順 13)。
  2. 生成されたファイルは現在ではexample_wrap.cありませんexample_wrap.cxx(手順の手順 14 と 19 で参照)。

または、この場合、指示に従う前に名前を変更example.cするだけで、そのまま機能するはずです。example.cpp

于 2012-08-19T15:03:19.920 に答える