VC常见调试错误代码_第1页
VC常见调试错误代码_第2页
VC常见调试错误代码_第3页
VC常见调试错误代码_第4页
VC常见调试错误代码_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、-首先说下最常见的link错误处理办法:在创建MFC项目时, 不使用MFC AppWizard向导, 如果没有设置好项目参数, 就会在编译时产生很多连接错误, 如error LNK2001错误, 典型的错误提示有:libcmtd.lib(crt0.obj) : error LNK2001: unresolved external symbol _mainLIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain16msvcrtd.lib(crtexew.obj) : error LNK2001: unr

2、esolved external symbol _WinMain16nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol _beginthreadexnafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol _endthreadex下面介绍解决的方法:1. Windows子系统设置错误, 提示:libcmtd.lib(crt0.obj) : error LNK2001: unresolved external symbol _m

3、ainWindows项目要使用Windows子系统, 而不是Console, 可以这样设置:Project -> Settings -> 选择"Link"属性页,在Project Options中将/subsystem:console改成/subsystem:windows2. Console子系统设置错误, 提示:LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain16控制台项目要使用Console子系统, 而不是Windows, 设置:Project ->

4、 Settings -> 选择"Link"属性页,在Project Options中将/subsystem:windows改成/subsystem:console3. 程序入口设置错误, 提示:msvcrtd.lib(crtexew.obj) : error LNK2001: unresolved external symbol _WinMain16通常, MFC项目的程序入口函数是WinMain, 如果编译项目的Unicode版本, 程序入口必须改为wWinMainCRTStartup, 所以需要重新设置程序入口:Project -> Settings -&g

5、t; 选择"C/C+"属性页,在Category中选择Output,再在Entry-point symbol中填入wWinMainCRTStartup, 即可4. 线程运行时库设置错误, 提示:nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol _beginthreadexnafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol _endthreadex这是因为MFC要使用多线程时库, 需要更改设置:Pro

6、ject -> Settings -> 选择"C/C+"属性页,在Category中选择Code Generation,再在Use run-time library中选择Debug Multithreaded或者multithreaded其中,Single-Threaded 单线程静态链接库(release版本)Multithreaded 多线程静态链接库(release版本)multithreaded DLL 多线程动态链接库(release版本)Debug Single-Threaded 单线程静态链接库(debug版本)Debug Multithreade

7、d 多线程静态链接库(debug版本)Debug Multithreaded DLL 多线程动态链接库(debug版本)单线程: 不需要多线程调用时, 多用在DOS环境下多线程: 可以并发运行静态库: 直接将库与程序Link, 可以脱离MFC库运行动态库: 需要相应的DLL动态库, 程序才能运行release版本: 正式发布时使用debug版本: 调试阶段使用例如,当我们不在MFC创建的环境下(console appllication),使用CString类等等,那么就会出现nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved extern

8、al symbol _beginthreadexnafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol _endthreadex错误,这时可以按照上面的方法,设置Code Generation为Debug Multithreaded,即可解决问题。补充:如何解决LINK2005错误在Project->Setting->Link 中加上/FORCE:MULTIPLE-最常见的20种VC+编译错误信息1、fatal error C1010: unexpected end of file while lo

9、oking for precompiled header directive。寻找预编译头文件路径时遇到了不该遇到的文件尾。(一般是没有#include "stdafx.h")2、fatal error C1083: Cannot open include file: 'R.h': No such file or directory不能打开包含文件“R.h”:没有这样的文件或目录。3、error C2011: 'C': 'class' type redefinition类“C”重定义。4、error C2018: unknow

10、n character '0xa3'不认识的字符'0xa3'。(一般是汉字或中文标点符号)5、error C2057: expected constant expression希望是常量表达式。(一般出现在switch语句的case分支中)6、error C2065: 'IDD_MYDIALOG' : undeclared identifier“IDD_MYDIALOG”:未声明过的标识符。7、error C2082: redefinition of formal parameter 'bReset'函数参数“bReset”在函数

11、体中重定义。8、error C2143: syntax error: missing ':' before ''句法错误:“”前缺少“;”。9、error C2146: syntax error : missing '' before identifier 'dc'句法错误:在“dc”前丢了“;”。10、error C2196: case value '69' already used值69已经用过。(一般出现在switch语句的case分支中)11、error C2509: 'OnTimer' :

12、 member function not declared in 'CHelloView'成员函数“OnTimer”没有在“CHelloView”中声明。12、error C2511: 'reset': overloaded member function 'void (int)' not found in 'B'重载的函数“void reset(int)”在类“B”中找不到。13、error C2555: 'B:f1': overriding virtual function differs from '

13、A:f1' only by return type or calling convention类B对类A中同名函数f1的重载仅根据返回值或调用约定上的区别。14、error C2660: 'SetTimer' : function does not take 2 parameters“SetTimer”函数不传递2个参数。15、warning C4035: 'f': no return value“f”的return语句没有返回值。16、warning C4553: '= =' : operator has no effect; did

14、you intend '='?没有效果的运算符“= =”;是否改为“=”?17、warning C4700: local variable 'bReset' used without having been initialized局部变量“bReset”没有初始化就使用。18、error C4716: 'CMyApp:InitInstance' : must return a value“CMyApp:InitInstance”函数必须返回一个值。19、LINK : fatal error LNK1168: cannot open Debug/P

15、1.exe for writing连接错误:不能打开P1.exe文件,以改写内容。(一般是P1.Exe还在运行,未关闭)20、error LNK2001: unresolved external symbol "public: virtual _ _thiscall C:C(void)"连接时发现没有实现的外部符号(变量、函数等)。-error LNK2001: unresolved external symbol _mainerror LNK2001: unresolved external symbol _main解决办法解决外部符号错误:_main,_WinMain1

16、6,_beginthreadex )在创建MFC项目时, 不使用MFC AppWizard向导, 如果没有设置好项目参数,就会在编译时产生很多连接错误, 如error LNK2001错误, 典型的错误提示有:libcmtd.lib(crt0.obj) : error LNK2001: unresolved external symbol _mainLIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain16msvcrtd.lib(crtexew.obj) : error LNK2001: unreso

17、lved external symbol _WinMain16nafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol _beginthreadexnafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol _endthreadex n1. Windows子系统设置错误, 提示:libcmtd.lib(crt0.obj) : error LNK2001: unresolved external symbol _mainWindows项

18、目要使用Windows子系统, 而不是Console, 可以这样设置:Project -> Settings -> 选择"Link"属性页,在Project Options中将/subsystem:console改成/subsystem:windows 2. Console子系统设置错误, 提示:LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain16控制台项目要使用Console子系统, 而不是Windows, 设置:Project -> Settings

19、-> 选择"Link"属性页,在Project Options中将/subsystem:windows改成/subsystem:console3. 程序入口设置错误, 提示:msvcrtd.lib(crtexew.obj) : error LNK2001: unresolved external symbol _WinMain16通常, MFC项目的程序入口函数是WinMain, 如果编译项目的Unicode版本, 程序入口必须改为wWinMainCRTStartup, 所以需要重新设置程序入口:Project -> Settings -> 选择"

20、;Link"属性页,在Category中选择Output,再在Entry-point symbol中填入wWinMainCRTStartup, 即可4. 线程运行时库设置错误, 提示: : kAF nnafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol _beginthreadexnafxcwd.lib(thrdcore.obj) : error LNK2001: unresolved external symbol _endthreadex这是因为MFC要使用多线程时库, 需要更改设置:Proje

21、ct -> Settings -> 选择"C/C+"属性页, ')在Category中选择Code Generation,再在Use run-time library中选择Debug Multithreaded或者multithreaded其中,Single-Threaded 单线程静态链接库(release版本)Multithreaded 多线程静态链接库(release版本)multithreaded DLL 多线程动态链接库(release版本)Debug Single-Threaded 单线程静态链接库(debug版本)Debug Multith

22、readed 多线程静态链接库(debug版本)Debug Multithreaded DLL 多线程动态链接库(debug版本)单线程: 不需要多线程调用时, 多用在DOS环境下多线程: 可以并发运行静态库: 直接将库与程序Link, 可以脱离MFC库运行动态库: 需要相应的DLL动态库, 程序才能运行release版本: 正式发布时使用debug版本: 调试阶段使用-1. Windows子系统设置错误, 提示:libcmtd.lib(crt0.obj) : error LNK2001: unresolved external symbol _mainWindows项目要使用Windows子

23、系统, 而不是Console, 可以这样设置:Project -> Settings -> 选择"Link"属性页,在Project Options中将/subsystem:console改成/subsystem:windows-看上去,你应该是建立了一个控制台工程,但是你没有定义main函数,所以会出现这样的错误。写个main函数。如果你定义的是Win32应用程序,并且定义了WinMain函数,那么按照楼上的方法,把“子系统”选项调整为Windows。-1:使用vc开发项目时,常会遇到这种情况:即明明只改动了一个文件,却要把整个项目全部重新编译连接一次。刚刚连接好,一运行,又提示重新编译连接一次,非常讨厌。这是因为出现了未来文件的缘故。解决方法:找出对应文件夹下的debug目录,将未来文件全部delete, 再rebuild all一次。(未来文件即其创建和修改时间都比系统时间靠后)2:有时,workspace中的classview显示混乱。其表现如下:(1):添加的成员变量或函数不能显示;(2):即使显示出来了变量或函数,双击后不能跳至正确的位置。解决方法:删除.ncb文件,再rebuild all.3:如何干净的删

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论