プロジェクトを 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
onpython27.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"
他の誰かがこれについて何か経験があり、私が間違っていることを教えてもらえますか?