我正在将一个项目从 VC10 移植到 VC11,并且在链接包含initXxx
加载 DLL 时 Python 调用的函数的组件时出现以下错误:
1>PyCAL.obj : error LNK2019: unresolved external symbol __imp__PyErr_SetString referenced in function __catch$_initPyCAL$0
1>PyCAL.obj : error LNK2019: unresolved external symbol __imp__PyErr_Occurred referenced in function __catch$_initPyCAL$1
有趣的是,在VC10中没有问题,虽然在这两种情况下,都只显示,但dumpbin /exports
在目标文件显示。(我已经尝试过使用和不使用 SAFESEH,因为这在过去造成了问题。)python27.lib
_PyErr_SetString
dumpbin /symbols
__imp__PyErr_SetString
对于它的价值,这里是从日志文件中调用链接器:
C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\bin\link.exe /ERRORREPORT:PROMPT /OUT:"..\..\..\Build\VC11.0\Debug-32bit\PyCAL.pyd" /INCREMENTAL:NO /NOLOGO /LIBPATH:C:\Python27\libs /MANIFEST /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /manifest:embed /DEBUG /PDB:"..\..\..\Build\VC11.0\Debug-32bit\\PyCAL.pdb" /SUBSYSTEM:WINDOWS /LARGEADDRESSAWARE /SWAPRUN:NET /TLBID:1 /DYNAMICBASE /NXCOMPAT /IMPLIB:"..\..\..\Build\VC11.0\Debug-32bit\\PyCAL.lib" /MACHINE:X86 /SAFESEH:NO /DLL "..\..\..\Build\VC11.0\Debug-32bit\obj\PyCAL\Loader.obj"
"..\..\..\Build\VC11.0\Debug-32bit\obj\PyCAL\PyCAL.obj"
有没有其他人有这方面的经验,可以告诉我我做错了什么?