当我在“发布”模式下构建时,我会得到以下错误。调试工作正常。在我的配置中关闭了使用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 任何想法
发布于 2013-08-30 11:02:23
可能会发生这样的情况:虽然ATL不用于您的项目,但是您正在针对use链接一些库,因此它们中有符号。问题似乎是,您正在混合配置- atls.lib是发布的ATL版本,而atlsd.lib是调试ATL,因此您得到重复。我建议检查您所链接的库是否是以正确的模式构建的--在发布版构建中,您应该使用调试库对照外部库的发行版本进行链接。这应该能解决问题。
https://stackoverflow.com/questions/18530832
复制相似问题