关于静态链接到MFC的项目链接时LIBCMTD.lib中符号重定义问题的处理方法libcmt.lib
来源:互联网 发布:网络解决方案ppt 编辑:程序博客网 时间:2024/05/21 06:45
有时候为了软件的移植问题,我们需要将项目设置成静态链接到MFC配置,然而,编译通过,链结时常常出现这样的问题,
msvcrt.lib(MSVCRT.dll) : error LNK2005: _gmtime already defined in libcmt.lib(gmtime.obj)
msvcrt.lib(MSVCRT.dll) : error LNK2005: _atoi already defined in libcmt.lib(atox.obj)
msvcrt.lib(MSVCRT.dll) : error LNK2005: _strchr already defined in libcmt.lib(strchr.obj)
msvcrt.lib(MSVCRT.dll) : error LNK2005: _strstr already defined in libcmt.lib(strstr.obj)
msvcrt.lib(MSVCRT.dll) : error LNK2005: _free already defined in libcmt.lib(free.obj)
msvcrt.lib(MSVCRT.dll) : error LNK2005: _atol already defined in libcmt.lib(atox.obj)
msvcrt.lib(MSVCRT.dll) : error LNK2005: _realloc already defined in libcmt.lib(realloc.obj)
msvcrt.lib(MSVCRT.dll) : error LNK2005: _malloc already defined in libcmt.lib(malloc.obj)
msvcrt.lib(MSVCRT.dll) : error LNK2005: _time already defined in libcmt.lib(time.obj)
msvcrt.lib(MSVCRT.dll) : error LNK2005: _strncmp already defined in libcmt.lib(strncmp.obj)
msvcrt.lib(MSVCRT.dll) : error LNK2005: _tolower already defined in libcmt.lib(tolower.obj)
msvcrt.lib(MSVCRT.dll) : error LNK2005: _strtol already defined in libcmt.lib(strtol.obj)
msvcrt.lib(MSVCRT.dll) : error LNK2005: __errno already defined in libcmt.lib(dosmap.obj)
msvcrt.lib(MSVCRT.dll) : error LNK2005: _mktime already defined in libcmt.lib(mktime.obj)
msvcrt.lib(MSVCRT.dll) : error LNK2005: _localtime already defined in libcmt.lib(localtim.obj)
msvcrt.lib(MSVCRT.dll) : error LNK2005: _memmove already defined in libcmt.lib(memmove.obj)
msvcrt.lib(MSVCRT.dll) : error LNK2005: _strrchr already defined in libcmt.lib(strrchr.obj)
msvcrt.lib(MSVCRT.dll) : error LNK2005: _exit already defined in libcmt.lib(crt0dat.obj)
msvcrt.lib(MSVCRT.dll) : error LNK2005: __strnicmp already defined in libcmt.lib(strnicmp.obj)
msvcrt.lib(MSVCRT.dll) : error LNK2005: __stricmp already defined in libcmt.lib(stricmp.obj)
msvcrt.lib(MSVCRT.dll) : error LNK2005: __strdup already defined in libcmt.lib(strdup.obj)
msvcrt.lib(MSVCRT.dll) : warning LNK4006: _gmtime already defined in libcmt.lib(gmtime.obj); second definition ignored
msvcrt.lib(MSVCRT.dll) : warning LNK4006: _atoi already defined in libcmt.lib(atox.obj); second definition ignored
msvcrt.lib(MSVCRT.dll) : warning LNK4006: _strchr already defined in libcmt.lib(strchr.obj); second definition ignored
msvcrt.lib(MSVCRT.dll) : warning LNK4006: _strstr already defined in libcmt.lib(strstr.obj); second definition ignored
msvcrt.lib(MSVCRT.dll) : warning LNK4006: _free already defined in libcmt.lib(free.obj); second definition ignored
msvcrt.lib(MSVCRT.dll) : warning LNK4006: _atol already defined in libcmt.lib(atox.obj); second definition ignored
msvcrt.lib(MSVCRT.dll) : warning LNK4006: _realloc already defined in libcmt.lib(realloc.obj); second definition ignored
msvcrt.lib(MSVCRT.dll) : warning LNK4006: _malloc already defined in libcmt.lib(malloc.obj); second definition ignored
msvcrt.lib(MSVCRT.dll) : warning LNK4006: _time already defined in libcmt.lib(time.obj); second definition ignored
msvcrt.lib(MSVCRT.dll) : warning LNK4006: _strncmp already defined in libcmt.lib(strncmp.obj); second definition ignored
msvcrt.lib(MSVCRT.dll) : warning LNK4006: _tolower already defined in libcmt.lib(tolower.obj); second definition ignored
msvcrt.lib(MSVCRT.dll) : warning LNK4006: _strtol already defined in libcmt.lib(strtol.obj); second definition ignored
msvcrt.lib(MSVCRT.dll) : warning LNK4006: __errno already defined in libcmt.lib(dosmap.obj); second definition ignored
msvcrt.lib(MSVCRT.dll) : warning LNK4006: _mktime already defined in libcmt.lib(mktime.obj); second definition ignored
msvcrt.lib(MSVCRT.dll) : warning LNK4006: _localtime already defined in libcmt.lib(localtim.obj); second definition ignored
msvcrt.lib(MSVCRT.dll) : warning LNK4006: _memmove already defined in libcmt.lib(memmove.obj); second definition ignored
msvcrt.lib(MSVCRT.dll) : warning LNK4006: _strrchr already defined in libcmt.lib(strrchr.obj); second definition ignored
msvcrt.lib(MSVCRT.dll) : warning LNK4006: _exit already defined in libcmt.lib(crt0dat.obj); second definition ignored
msvcrt.lib(MSVCRT.dll) : warning LNK4006: __strnicmp already defined in libcmt.lib(strnicmp.obj); second definition ignored
msvcrt.lib(MSVCRT.dll) : warning LNK4006: __stricmp already defined in libcmt.lib(stricmp.obj); second definition ignored
msvcrt.lib(MSVCRT.dll) : warning LNK4006: __strdup already defined in libcmt.lib(strdup.obj); second definition ignored
这时候,我们可以这样处理,将运行时库改成多线程DLL方式,修改以后再次链接,出现如下问题:
nafxcw.lib(nolib.obj) : warning LNK4098: defaultlib "mfc42.lib" conflicts with use of other libs; use /NODEFAULTLIB:library
nafxcw.lib(nolib.obj) : warning LNK4098: defaultlib "mfcs42.lib" conflicts with use of other libs; use /NODEFAULTLIB:library
nafxcw.lib(appcore.obj) : error LNK2001: unresolved external symbol ___argv
nafxcw.lib(appcore.obj) : error LNK2001: unresolved external symbol ___argc
nafxcw.lib(filelist.obj) : error LNK2001: unresolved external symbol __mbctype
nafxcw.lib(timecore.obj) : error LNK2001: unresolved external symbol __mbctype
nafxcw.lib(apphelp.obj) : error LNK2001: unresolved external symbol __mbctype
Release/YiNuoHttpCMD.dll : fatal error LNK1120: 3 unresolved externals
这时我们可以这样处理,在预处理器上定义加上_AFXDLL,再链接,一切OK了
- 关于静态链接到MFC的项目链接时LIBCMTD.lib中符号重定义问题的处理方法libcmt.lib
- CUDA的MFC程序框架中编译出现nafxcw.lib与LIBCMT.lib链接重定义的解决
- 链接错误:error LNK2019:无法解析的外部符号 __CrtDbgReportW——库冲突(libcmt.lib和libcmtd.lib)
- 链接错误-库冲突(libcmt.lib和libcmtd.lib)
- 链接错误-库冲突(libcmt.lib和libcmtd.lib)
- 链接错误-库冲突(libcmt.lib和libcmtd.lib)
- 链接错误-库冲突(libcmt.lib和libcmtd.lib)
- 链接错误-库冲突(libcmt.lib和libcmtd.lib)
- 链接错误-库冲突(libcmt.lib和libcmtd.lib)
- 链接错误-库冲突(libcmt.lib和libcmtd.lib)
- 关于调用静态链接库LIB,提示重定义或库冲突的错误
- LIBCMT.lib与msvcrtd.lib冲突的链接错误
- 关于lib静态链接问题
- VS2005链接问题: LNK2005错误 :error LNK2005: _free 已经在 libcmtd.lib(dbgheap.obj) 中定义
- VS2005链接问题: LNK2005错误 :error LNK2005: _free 已经在 libcmtd.lib(dbgheap.obj) 中定义
- VC运行库版本不同导致链接.LIB静态库时发生重复定义问题的
- VC 链接时new和delete运算符已经在 LIBCMTD.lib 中定义解决方法
- 编译错误 在msvcrtd.lib(libcmt.lib)中重定义
- JDK7新特性之概述(一)
- Mp3解码算法流程
- printf与fprintf函数的区别?
- 购物兔最新版本3.2.26.100,上小众推荐和搜狐新闻啦~
- C++获取一个文件夹下的所有文件名
- 关于静态链接到MFC的项目链接时LIBCMTD.lib中符号重定义问题的处理方法libcmt.lib
- winxp网络ID不可用,开启workstation服务即可
- html IE6 下产品列表页错乱
- 【大型网站开发系列第一篇】——网站结构层次
- C# 模态进度条
- linux里永久修改mac和IP的方法
- FLEX实现Web实时监控
- windows进程间通信(转载)
- Flex Chart X轴顶部显示