1>atlsd.lib(Externs.obj) : error LNK2005: "char const * const g_pszUpdateEventName" (?g_pszUpdateEventName@@3PBDB) 已经在 atls.lib(Externs.obj) 中定义
1>atlsd.lib(Externs.obj) : error LNK2005: "char const * const g_pszAllocFileMapName" (?g_pszAllocFileMapName@@3PBDB) 已经在 atls.lib(Externs.obj) 中定义
1>atlsd.lib(Externs.obj) : error LNK2005: "char const * const g_pszKernelObjFmt" (?g_pszKernelObjFmt@@3PBDB) 已经在 atls.lib(Externs.obj) 中定义
1>atlsd.lib(Externs.obj) : error LNK2005: "char const * const g_pszAllocFileMapName" (?g_pszAllocFileMapName@@3PBDB) 已经在 atls.lib(Externs.obj) 中定义
1>atlsd.lib(Externs.obj) : error LNK2005: "char const * const g_pszKernelObjFmt" (?g_pszKernelObjFmt@@3PBDB) 已经在 atls.lib(Externs.obj) 中定义
1>atlsd.lib(Externs.obj) : error LNK2005: "class CAtlAllocator g_Allocator" (?g_Allocator@@3VCAtlAllocator@@A) 已经在 atls.lib(Externs.obj) 中定义
折腾了一天终于找到问题的解决办法了,既然两个库都调用了,那就直接忽略一个。
在调试debug版本的时候,忽略atlsd.lib。在调试release版本时,忽略atls.lib就行。
(Property pages -》Linker-》Input -》Ignore Specific Library,添加atls.lib)
其实这个问题的根本原因在于在项目里面两次调用了atlsd.lib这个库,但是实在找不到哪里这么调用的。因此上述解决办法是比较完美的。