我目前正在尝试在Windows中构建C扩展.这些错误似乎与在python27.dll中找不到"标准"符号有关.如何解决这些缺失的符号?我是否需要以某种方式告诉编译器在哪里找到python27.dll或者我的python27.lib有问题?
我的设置如下:
我发现这个链接似乎有一个相关的问题,但是我不使用的东西的版本:http://bugs.python.org/issue15772
我正在运行python setup.py build_ext --inplace构建扩展.
setup.py如下所示:
try:
numpy_include = numpy.get_include()
except AttributeError:
numpy_include = numpy.get_numpy_include()
fmm3d_module = Extension('_fmm3d', sources=['fmm3d.i', 'fmm3d.c'],
include_dirs = [numpy_include])
Run Code Online (Sandbox Code Playgroud)
一切编译好,然后运行以下链接命令:
C:\Program Files (x86)\Microsoft Visual Studio 9.\VC\BIN\link.exe /DLL /nologo /INCREMENTAL:NO /LIBPATH:C:\Python27\libs /LIBPATH:C:\Python27\PCbuild\ amd64 /EXPORT:init_fmm3d build\temp.win-amd64-2.7\Release\fmm3d_wrap.obj build\temp.win-amd64-2.7\Release\fmm3d.obj /OUT:C:\Users\luke\Documents\Ranking\code\_fmm3d.pyd /IMPLIB:build\temp.win-amd64-2.7\Release\_fmm3d.lib /MANIFESTFILE:build\temp.win-amd64-2.7\Release\_fmm3d.pyd.manifest
Run Code Online (Sandbox Code Playgroud)
我得到与Python符号相关的链接错误,如下所示:
fmm3d_wrap.obj : error LNK2019: unresolved external symbol __imp__PyString_AsString referenced in function _SWIG_Python_str_AsChar
fmm3d_wrap.obj : error LNK2019: unresolved external symbol __imp__PyString_FromString referenced in function _SWIG_Python_str_FromChar
fmm3d_wrap.obj : error LNK2019: unresolved external symbol __imp__PyExc_RuntimeError referenced in function _SWIG_Python_ErrorType
fmm3d_wrap.obj : error LNK2019: unresolved external symbol __imp__PyExc_AttributeError referenced in function _SWIG_Python_ErrorType
Run Code Online (Sandbox Code Playgroud)
我发现Python lib文件位于C:Python27\libs\python27.lib.我假设这些符号应该在这里.实际上,看起来它们至少在此文件中被引用.例如,running dumpbin -headers C:\Python27\libs\python27.lib显示以下代码段:
Version : 0
Machine : 8664 (x64)
TimeDateStamp: 5160619D Sat Apr 06 12:55:41 2013
SizeOfData : 0000001F
DLL name : python27.dll
Symbol name : PyString_AsString
Type : code
Name type : name
Hint : 629
Name : PyString_AsString
Run Code Online (Sandbox Code Playgroud)
这让我相信python27.lib说pyString_AsString的引用包含在python27.dll中.
是否有一些其他命令行参数我找不到这些符号?
| 归档时间: |
|
| 查看次数: |
6840 次 |
| 最近记录: |