VS2017项目升级 error LNK2005: "public: __thiscall ATL::CTime::

Posted hul201610101100

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VS2017项目升级 error LNK2005: "public: __thiscall ATL::CTime::相关的知识,希望对你有一定的参考价值。

我是将项目升级到从VS2012 升级VS2017, 报错如下

1>atlsd.lib(atltime.obj) : error LNK2005: "public: __thiscall ATL::CTime::CTime(__int64)" (??0CTime@ATL@@QAE@_J@Z) 已经在 UNIServer.obj 中定义
1>atlsd.lib(atltime.obj) : error LNK2005: "public: int __thiscall ATL::CTime::GetHour(void)const " (?GetHour@CTime@ATL@@QBEHXZ) 已经在 UNIServer.obj 中定义
1>atlsd.lib(atltime.obj) : error LNK2005: "public: struct tm * __thiscall ATL::CTime::GetLocalTm(struct tm *)const " (?GetLocalTm@CTime@ATL@@QBEPAUtm@@PAU3@@Z) 已经在 UNIServer.obj 中定义
1>atlsd.lib(atltime.obj) : error LNK2005: "public: int __thiscall ATL::CTime::GetMinute(void)const " (?GetMinute@CTime@ATL@@QBEHXZ) 已经在 UNIServer.obj 中定义
1>atlsd.lib(atltime.obj) : error LNK2005: "public: static class ATL::CTime __stdcall ATL::CTime::GetTickCount(void)" (?GetTickCount@CTime@ATL@@SG?AV12@XZ) 已经在 UNIServer.obj 中定义

原因:

  我的VS2017安装的有问题, 在安装包中找不到这个atlsd,lib文件, 然后没办法就直接链接VS2012中的文件

解决方法:

  项目 -> 属性 -> 链接器-> 命令行: 添加 /FORCE:MULTIPLE, 重新编译, 就解决了

以上是关于VS2017项目升级 error LNK2005: "public: __thiscall ATL::CTime::的主要内容,如果未能解决你的问题,请参考以下文章

VS2008(C++)-控制台项目中LNK2005错误的问题

静态成员变量初始化在vs中报错“error LNK2005 static VimbaSystem...已经在...obj中定义”

由于其他依赖库,在 VS2010 中链接 googleTest 会导致 LNK2005

VS2005和VS2008做的项目有啥区别

uafxcwd.lib(afxmem.obj) : error LNK2005 解决方法

error LNK2001: 无法解析的外部符号