Atlsd.lib Lib错误

时间:2013-08-30 10:35:36

标签: c++

我在“发布”模式下构建时遇到以下错误。调试工作正常。在我的配置中关闭使用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:\Secure\Source\cutlas\Core\Adapters\PRISAdapter\Release\PRISAdapter.exe   1   

任何想法

1 个答案:

答案 0 :(得分:2)

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