SWIG和Visual Studio入门

时间:2012-08-19 00:24:35

标签: python visual-studio-2010 swig

我正在尝试使用从swig,org下载的示例,使用Visual Studio 2010创建我的第一个SWIG python DLL。我正在运行Windows专业版64位。我下载了swigwin-2.0.7并将其解压缩。我遵循了herehere的说明,在这两种情况下,包装文件都已构建,但项目构建失败。链接器抱怨大约56个未解析的外部符号,所有符号类似于__imp__PyBytes_AsStringAndSize或__imp__PyExc_RuntimeError。

我已经尝试使用我的python 2.7安装以及我的python 3.2安装,结果类似。我是否必须从我的平台的源代码构建swig?我花了最后6个小时左右,我感到很困惑。

1 个答案:

答案 0 :(得分:3)

按照说明here,使用来自SWIG,Windows 7 64位和Python 2.7 32位的simple 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 ++,因此必须进行两项更改:

  1. 请勿使用-c++命令行上的swig开关(说明的第13步)。
  2. 生成的文件现在为example_wrap.c而不是example_wrap.cxx(参见说明的第14和19步)。
  3. 或者,在这种情况下,只需将example.c重命名为example.cpp,然后按照说明进行操作,它们应该按原样运行。