我正在将项目从VC10移植到VC11,当链接包含加载DLL时由Python调用的initXxx
函数的组件时,我遇到以下错误:
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
上的python27.lib
仅显示_PyErr_SetString
,但目标文件上的dumpbin /symbols
显示__imp__PyErr_SetString
。 (我曾经和SAFESEH一起尝试过,因为这在过去已经引起了问题。)
对于它的价值,这里是从日志文件中调用链接器:
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"
有没有其他人有这方面的经验,可以告诉我我做错了什么?