商务合作:179001057@qq.com

函数重复定义的编译错误,MSVCRTD.lib库和LIBCMTD.lib库重复定义函数

技术2022-05-11  0


某平台价值19860元的编程课程资料免费领取【点我领取】


 本人在编译工程时,遇到如下错误:     1>LIBCMTD.lib(dbgheap.obj) : error LNK2005: __CrtSetDbgFlag 已经在 MSVCRTD.lib(MSVCR90D.dll) 中定义1>LIBCMTD.lib(dbgheap.obj) : error LNK2005: __CrtSetCheckCount 已经在 MSVCRTD.lib(MSVCR90D.dll) 中定义1>LIBCMTD.lib(setlocal.obj) : error LNK2005: __configthreadlocale 已经在 MSVCRTD.lib(MSVCR90D.dll) 中定义1>LIBCMTD.lib(getenv.obj) : error LNK2005: _getenv 已经在 MSVCRTD.lib(MSVCR90D.dll) 中定义1>LIBCMTD.lib(mlock.obj) : error LNK2005: __lock 已经在 MSVCRTD.lib(MSVCR90D.dll) 中定义1>LIBCMTD.lib(mlock.obj) : error LNK2005: __unlock 已经在 MSVCRTD.lib(MSVCR90D.dll) 中定义1>LIBCMTD.lib(dosmap.obj) : error LNK2005: __errno 已经在 MSVCRTD.lib(MSVCR90D.dll) 中定义1>LIBCMTD.lib(crt0dat.obj) : error LNK2005: _exit 已经在 MSVCRTD.lib(MSVCR90D.dll) 中定义1>LIBCMTD.lib(crt0dat.obj) : error LNK2005: __exit 已经在 MSVCRTD.lib(MSVCR90D.dll) 中定义1>LIBCTD.lib(crt0dat.obj) : error LNK2005: __cexit 已经在 MSVCRTD.lib(MSVCR90D.dll) 中定义1>LIBCMTD.lib(strftime.obj) : error LNK2005: _strftime 已经在 MSVCRTD.lib(MSVCR90D.dll) 中定义1>LIBCMTD.lib(fclose.obj) : error LNK2005: _fclose 已经在 MSVCRTD.lib(MSVCR90D.dll) 中定义1>LIBCMTD.lib(crt0.obj) : error LNK2005: _mainCRTStartup 已经在 MSVCRTD.lib(crtexe.obj) 中定义1>LIBCMTD.lib(vsprintf.obj) : error LNK2005: _vsprintf 已经在 MSVCRTD.lib(MSVCR90D.dll) 中定义1>LIBCMTD.lib(tzset.obj) : error LNK2005: __tzset 已经在 MSVCRTD.lib(MSVCR90D.dll) 中定义1>LIBCMTD.lib(stricmp.obj) : error LNK2005: __stricmp 已经在 MSVCRTD.lib(MSVCR90D.dll) 中定义1>LIBCMTD.lib(vprintf.obj) : error LNK2005: _vprintf 已经在 MSVCRTD.lib(MSVCR90D.dll) 中定义

=============================================================

原因:

     主程序和lib所使用的运行库不一致

 

解决办法:

     vc6----project->setting->c/c++->Code   Generation->Use   run-time   library

     vc9----项目->属性->c/c++->代码生成->运行时库


最新回复(0)