msvcprtd.lib(MSVCP100D.dll) : error LNK2005

本文介绍了解决在VS2010中使用特定库文件时遇到的LNK2005重复定义错误的方法。通过调整项目的编译选项,从默认的多线程调试DLL模式改为多线程调试模式,成功解决了编译问题。

背景:新建一个工程testLogin,将example\login中的两个cc文件加入到source中,设置路径及包含lib文件,加入预编译命令后,编译时出现这个错误。

 

原因:使用VS2010的project wizard新建一个Win32 Consoleproject时,默认的Runtime Library是Multi-threaded DebugDll(/MDd),而要编译login必须使用Multi-threadedDebug(因为jingle.lib等library都是lib格式,而不是dll格式)。

 

参考:msvcprtd.lib(MSVCP100D.dll) : error LNK2005:already defined in gtestd.lib(gtest.obj)



本文转自:http://blog.sina.com.cn/s/blog_872c0f4601010dlt.html

1>msvcrt.lib(ti_inst.obj) : error LNK2005: "private: __cdecl type_info::type_info(class type_info const &)" (??0type_info@@AEAA@AEBV0@@Z) 已经在 LIBCMTD.lib(typinfo.obj)定义 1>msvcrt.lib(ti_inst.obj) : error LNK2005: "private: class type_info & __cdecl type_info::operator=(class type_info const &)" (??4type_info@@AEAAAEAV0@AEBV0@@Z) 已经在 LIBCMTD.lib(typinfo.obj)定义 1>msvcrt.lib(MSVCR100.dll) : error LNK2005: atof 已经在 LIBCMTD.lib(atof.obj)定义 1>msvcrt.lib(MSVCR100.dll) : error LNK2005: sprintf_s 已经在 LIBCMTD.lib(sprintf.obj)定义 1>msvcrt.lib(MSVCR100.dll) : error LNK2005: printf 已经在 LIBCMTD.lib(printf.obj)定义 1>msvcrt.lib(MSVCR100.dll) : error LNK2005: free 已经在 LIBCMTD.lib(dbgfree.obj)定义 1>msvcrt.lib(MSVCR100.dll) : error LNK2005: malloc 已经在 LIBCMTD.lib(dbgmalloc.obj)定义 1>msvcrt.lib(MSVCR100.dll) : error LNK2005: fclose 已经在 LIBCMTD.lib(fclose.obj)定义 1>msvcrt.lib(MSVCR100.dll) : error LNK2005: fputc 已经在 LIBCMTD.lib(fputc.obj)定义 1>msvcrt.lib(MSVCR100.dll) : error LNK2005: fopen_s 已经在 LIBCMTD.lib(fopen.obj)定义 1>msvcrt.lib(MSVCR100.dll) : error LNK2005: fgetc 已经在 LIBCMTD.lib(fgetc.obj)定义 1>msvcrt.lib(MSVCR100.dll) : error LNK2005: fopen 已经在 LIBCMTD.lib(fopen.obj)定义 1>msvcrt.lib(MSVCR100.dll) : error LNK2005: strstr 已经在 LIBCMTD.lib(strstr.obj)定义 1>msvcrt.lib(MSVCR100.dll) : error LNK2005: strcpy_s 已经在 LIBCMTD.lib(strcpy_s.obj)定义 1>msvcrt.lib(MSVCR100.dll) : error LNK2005: memcpy_s 已经在 LIBCMTD.lib(memcpy_s.obj)定义 1>msvcrt.lib(MSVCR100.dll) : error LNK2005: memmove_s 已经在 LIBCMTD.lib(memmove_s.obj)定义 1>msvcrt.lib(MSVCR100.dll) : error LNK2005: wcslen 已经在 LIBCMTD.lib(wcslen.obj)定义 1>msvcrt.lib(MSVCR100.dll) : error LNK2005: memmove 已经在 LIBCMTD.lib(memcpy.obj)定义 1>msvcrt.lib(MSVCR100.dll) : error LNK2005: vsprintf_s 已经在 LIBCMTD.lib(vsnprnc.obj)定义 1>msvcrt.lib(MSVCR100.dll) : error LNK2005: "public: __cdecl std::exception::exception(char const * const &)" (??0exception@std@@QEAA@AEBQEBD@Z) 已经在 LIBCMTD.lib(stdexcpt.obj)定义 1>msvcrt.lib(MSVCR100.dll) : error LNK2005: "public: virtual __cdecl std::exception::~exception(void)" (??1exception@std@@UEAA@XZ) 已经在 LIBCMTD.lib(stdexcpt.obj)定义 1>msvcrt.lib(MSVCR100.dll) : error LNK2005: "public: __cdecl std::exception::exception(class std::exception const &)" (??0exception@std@@QEAA@AEBV01@@Z) 已经在 LIBCMTD.lib(stdexcpt.obj)定义 1>msvcrt.lib(MSVCR100.dll) : error LNK2005: _stricmp 已经在 LIBCMTD.lib(stricmp.obj)定义 1>msvcrt.lib(MSVCR100.dll) : error LNK2005: getc 已经在 LIBCMTD.lib(fgetc.obj)定义 1>msvcrt.lib(MSVCR100.dll) : error LNK2005: system 已经在 LIBCMTD.lib(system.obj)定义 1>msvcrt.lib(MSVCR100.dll) : error LNK2005: getenv_s 已经在 LIBCMTD.lib(getenv.obj)定义 1>msvcrt.lib(MSVCR100.dll) : error LNK2005: atoi 已经在 LIBCMTD.lib(atox.obj)定义 1>msvcrt.lib(MSVCR100.dll) : error LNK2005: fwrite 已经在 LIBCMTD.lib(fwrite.obj)定义 1>msvcrt.lib(MSVCR100.dll) : error LNK2005: ftell 已经在 LIBCMTD.lib(ftell.obj)定义 1>msvcrt.lib(MSVCR100.dll) : error LNK2005: fseek 已经在 LIBCMTD.lib(fseek.obj)定义 1>msvcprt.lib(MSVCP100.dll) : error LNK2005: "void __cdecl std::_Xlength_error(char const *)" (?_Xlength_error@std@@YAXPEBD@Z) 已经在 libcpmtd.lib(xthrow.obj)定义 1>msvcprt.lib(MSVCP100.dll) : error LNK2005: "void __cdecl std::_Xout_of_range(char const *)" (?_Xout_of_range@std@@YAXPEBD@Z) 已经在 libcpmtd.lib(xthrow.obj)定义 1> 正在创建库 E:\Code\Work\diaoSlide\04-diaoSlide-HuaKuaiZuo\x64\Debug\/diaoSlide.lib 和对象 E:\Code\Work\diaoSlide\04-diaoSlide-HuaKuaiZuo\x64\Debug\/diaoSlide.exp 1>LIBCMTD.lib(crt0init.obj) : warning LNK4098: 默认库“msvcrt.lib”与其他库的使用冲突;请使用 /NODEFAULTLIB:library 1>E:\Code\Work\diaoSlide\04-diaoSlide-HuaKuaiZuo\x64\Debug\diaoSlide.dll : fatal error LNK1169: 找到一个或多个多重定义的符号 1>已完成生成项目“GuideRail.vcxproj”的操作 - 失败。
06-07
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值