我正在尝试使用从swig,org下载的示例,使用Visual Studio 2010创建我的第一个SWIG python DLL。我正在运行Windows专业版64位。我下载了swigwin-2.0.7并将其解压缩。我遵循了here和here的说明,在这两种情况下,包装文件都已构建,但项目构建失败。链接器抱怨大约56个未解析的外部符号,所有符号类似于__imp__PyBytes_AsStringAndSize或__imp__PyExc_RuntimeError。
我已经尝试使用我的python 2.7安装以及我的python 3.2安装,结果类似。我是否必须从我的平台的源代码构建swig?我花了最后6个小时左右,我感到很困惑。
答案 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 ++,因此必须进行两项更改:
-c++
命令行上的swig
开关(说明的第13步)。example_wrap.c
而不是example_wrap.cxx
(参见说明的第14和19步)。或者,在这种情况下,只需将example.c
重命名为example.cpp
,然后按照说明进行操作,它们应该按原样运行。