Atlsd.lib Lib errors

Atlsd.lib Lib errors

本文关键字:errors Lib lib Atlsd      更新时间:2023-10-16

在"发布"模式下构建时,我收到以下错误。调试工作正常。在我的配置中关闭了使用ATL

Error   43  error LNK2005: "char const * const g_pszAllocFileMapName" (?g_pszAllocFileMapName@@3PBDB) already defined in atls.lib(Externs.obj)  atlsd.lib   
Error   44  error LNK2005: "char const * const g_pszKernelObjFmt" (?g_pszKernelObjFmt@@3PBDB) already defined in atls.lib(Externs.obj)  atlsd.lib   
Error   42  error LNK2005: "char const * const g_pszUpdateEventName" (?g_pszUpdateEventName@@3PBDB) already defined in atls.lib(Externs.obj)    atlsd.lib   
Error   45  error LNK2005: "class CAtlAllocator g_Allocator" (?g_Allocator@@3VCAtlAllocator@@A) already defined in atls.lib(Externs.obj)    atlsd.lib   
Error   41  error LNK2005: "unsigned int (__stdcall* ATL::g_pfnGetThreadACP)(void)" (?g_pfnGetThreadACP@ATL@@3P6GIXZA) already defined in atls.lib(atltrace.obj)    atlsd.lib   
Error   49  fatal error LNK1169: one or more multiply defined symbols found C:SecureSourcecutlasCoreAdaptersPRISAdapterReleasePRISAdapter.exe   1   

任何想法

尽管ATL没有用于您的项目,但您链接的某些库可能会使用ATL,从而在其中包含符号。问题似乎是您在混合配置——atls.lib是发布ATL版本,而atlsd.lib是调试ATL版本,因此您会得到重复的配置。我建议检查您链接的库是否以正确的模式构建——在Release构建中,您应该在Debug中使用调试库链接外部库的发布版本。这应该能解决问题。