链接错误:nafxcwd.lib(dcprev.obj) : error LNK2001: unresolved external symbol __mbctyp

iyranly 2007-10-22 07:45:28
我写了一个程序,原来是Use MFC in a Share DLL ,但是最后程序在没有VC的机器上运行不了,我把它改成静态链接时出现以下错误:
MSVCRTD.lib(MSVCRTD.dll) : error LNK2005: _fclose already defined in libcmtd.lib(fclose.obj)
MSVCRTD.lib(MSVCRTD.dll) : error LNK2005: _fflush already defined in libcmtd.lib(fflush.obj)
MSVCRTD.lib(MSVCRTD.dll) : error LNK2005: _free already defined in libcmtd.lib(dbgheap.obj)
MSVCRTD.lib(MSVCRTD.dll) : error LNK2005: _malloc already defined in libcmtd.lib(dbgheap.obj)
MSVCRTD.lib(MSVCRTD.dll) : error LNK2005: _floor already defined in libcmtd.lib(floor.obj)
MSVCRTD.lib(MSVCRTD.dll) : error LNK2005: _calloc already defined in libcmtd.lib(dbgheap.obj)
MSVCRTD.lib(MSVCRTD.dll) : error LNK2005: __mbsnbcpy already defined in libcmtd.lib(mbsnbcpy.obj)
MSVCRTD.lib(MSVCRTD.dll) : error LNK2005: _sprintf already defined in libcmtd.lib(sprintf.obj)
。。。29errors


我在Setting中Ignor掉libcmtd.lib后,出现如下11处错误,,,

Linking...
Creating library Debug/Interface.lib and object Debug/Interface.exp
nafxcwd.lib(dcprev.obj) : error LNK2001: unresolved external symbol __mbctype
nafxcwd.lib(oledlgs1.obj) : error LNK2001: unresolved external symbol __mbctype
nafxcwd.lib(olelink.obj) : error LNK2001: unresolved external symbol __mbctype
nafxcwd.lib(dcmeta.obj) : error LNK2001: unresolved external symbol __mbctype
nafxcwd.lib(timecore.obj) : error LNK2001: unresolved external symbol __mbctype
nafxcwd.lib(apphelp.obj) : error LNK2001: unresolved external symbol __mbctype
nafxcwd.lib(filelist.obj) : error LNK2001: unresolved external symbol __mbctype
nafxcwd.lib(viewedit.obj) : error LNK2001: unresolved external symbol __mbctype
nafxcwd.lib(appcore.obj) : error LNK2001: unresolved external symbol ___argv
nafxcwd.lib(appcore.obj) : error LNK2001: unresolved external symbol ___argc
Debug/Interface.exe : fatal error LNK1120: 3 unresolved externals
Error executing link.exe.

Interface.exe - 11 error(s), 0 warning(s)


请高手指教,什么原因。
...全文
2412 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ofeliaxss 2010-10-19
  • 打赏
  • 举报
回复
你好!我和你遇到一样的错误。
我看了你们说的以后还是不太明白到底要怎么解决这个问题……
“将我电脑上的MFC42.dll拷贝到目标机器的system32里面”?这是什么意思。
我电脑安装了VC++6.0.
这个问题烦恼了我一个下午了,还请帮忙!谢谢!
iyranly 2007-10-23
  • 打赏
  • 举报
回复
谢谢楼上二位,问题我已经解决了!我还是把它设置为动态的,把需要的dll打包放在目标机器的system32下面。开始的时候出来无法定位序数...于MFC42.dll,可能是dll版本不对(那个是我在dll.com上面下载的,估计他们没有更新),然后我将我电脑上的MFC42.dll拷贝到目标机器的system32里面,运行,就ok了
凤矶 2007-10-23
  • 打赏
  • 举报
回复
改回去,只在工程选项去掉 /D "_AFXDLL"
shanhqk 2007-10-22
  • 打赏
  • 举报
回复
如果程序使用了MFC类库等信息,在一个没有安装vc环境的计算机上运行,如果不出错,那证明操作系统肯定有
问题了,所以呀,这个很正常,需要把vc中使用的dll文件拷贝到system32下,或者设置在环境变量中,也
可以在程序的目录中,至于说缺什么DLL,需要什么DLL,可以使用SKY++工具看看
VC 6.0常见安装错误 VC调试常见错误 程序设计到多线程,VC++6.0默认设置可作以下修改: project->settings->C/C++->Category中选Code Generation->Use Run-time Library选Debug MultiThreaded或MultiThreaded 在创建MFC项目时, 不使用MFC AppWizard向导, 如果没有设置好项目参数, 就会在编译时产生很多连接错误, 如error LNK2001错误, 典型的错误提示有: libcmtd.lib(crt0.obj) : error LNK2001: unresolved external symbol _main LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16 msvcrtd.lib(crtexew.obj) : error LNK2001: unresolved external symbol _WinMain@16 nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __beginthreadex nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol __endthreadex 下面介绍解决的方法: 1. Windows子系统设置错误, 提示: libcmtd.lib(crt0.obj) : error LNK2001: unresolved external symbol _main Windows项目要使用Windows子系统, 而不是Console, 可以这样设置: [Project] --> [Settings] --> 选择"Link"属性页, 在Project Options中将/subsystem:console改成/subsystem:windows 2. Console子系统设置错误, 提示: LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16 控制台项目要使用Console子系统, 而不是Windows, 设置: [Project] --> [Settings] --> 选择"Link"属性页, 在Project Options中将/subsystem:windows改成/subsystem:console 3. 程序入口设置错误, 提示: msvcrtd.lib(crtexew.obj) : error LNK2001: unresolved external symbol _WinMain@16 通常, MFC项目的程序入口函数是WinMain, 如果编译项目的Unicode版本, 程序入口必须改为wWinMainCRTStartup, 所以需要重新设置程序入口: [Project] --> [Settings] --> 选择"C/C++"属性页, 在Category中选择Output, 再在Entry-point symbol中填入wWinMainCRTStartup, 即可 4. 线程运行时库设置错误, 提示:

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧