资源描述:
《c语言调试时出现的错误及调整方法》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、VC中LIBCD.lib(wincrt0.obj):errorLNK2001:unresolvedexternalsymbol_WinMain@16错误2009-10-0911:11学习VC++时经常会遇到链接错误LNK2001,而一般说来发生连接错误时,编译都已通过。产生连接错误的原因非常多,尤其LNK2001错误,常常使人不明其所以然。产生LNK2001错误的原因:一个是由于编码错误导致的LNK2001,在这不想详细说.另一个由于编译和链接的设置而造成的LNK2001.最经常发生的是:"LIBCD.lib(wincrt0.obj):errorLNK2
2、001:unresolvedexternalsymbol",产生这个错误的原因是没有为wWinMainCRTStartup设定程序入口.认识这个错误首先在新建工程时要分清Win32Application和Win32ConsoleApplication.它们都是工作在32位Windows环境的程序.其中Win32Application就是普通的常见的窗口应用程序,当然有的界面做得比较个性化,比如圆形的、不规则形状的.它们都是所谓的GUI(GraphicsUserInterface图形用户接口),我们可以通过鼠标点击来完成控制。而Win32ConsoleAp
3、plication(win32控制台应用程序)往往是像MS-DOS窗口(XP中叫命令提示符)的样子出现,我们得用键盘输入各种命令来使用它,或者叫CUI(CharacterUserInterface字符用户接口)。遇到如下链接错误:Linking.../subsystem:windowsLIBCD.lib(wincrt0.obj):errorLNK2001:unresolvedexternalsymbol_WinMain@16Debug/TestWin.exe:fatalerrorLNK1120:1unresolvedexternalsErrorexecu
4、tinglink.exe.解决方法是:将project-settings-link的projectoptions里的/subsystem:windows改成/subsystem:console因为Win32Application的入口函数为WinMainWin32ConsoleApplication的入口函数是main也就是说,如果你编写传统的C程序,必须建立Win32Console程序,但VC里面默认的是Win32Application,于是上面提及的链接错误就就经常出现了而Win32Application和Win32Console的区别就在于VC里链
5、接参数不同另外几种errorLNK2001错误:在创建MFC项目时,不使用MFCAppWizard向导,如果没有设置好项目参数,就会在编译时产生很多连接错误,如errorLNK2001错误,典型的错误提示有:libcmtd.lib(crt0.obj):errorLNK2001:unresolvedexternalsymbol_mainLIBCD.lib(wincrt0.obj):errorLNK2001:unresolvedexternalsymbol_WinMain@16msvcrtd.lib(crtexew.obj):errorLNK2001:unr
6、esolvedexternalsymbol_WinMain@16nafxcwd.lib(thrdcore.obj):errorLNK2001:unresolvedexternalsymbol__beginthreadexnafxcwd.lib(thrdcore.obj):errorLNK2001:unresolvedexternalsymbol__endthreadex下面介绍解决的方法:1.Windows子系统设置错误,提示:libcmtd.lib(crt0.obj):errorLNK2001:unresolvedexternalsymbol_main
7、Windows项目要使用Windows子系统,而不是Console,可以这样设置:[Project]-->[Settings]-->选择"Link"属性页,在ProjectOptions中将/subsystem:console改成/subsystem:windows2.Console子系统设置错误,提示:LIBCD.lib(wincrt0.obj):errorLNK2001:unresolvedexternalsymbol_WinMain@16控制台项目要使用Console子系统,而不是Windows,设置:[Project]-->[Settings]-
8、->选择"Link"属性页,在ProjectOptions中将/subsyste