VC6.0常见链接错误与解决方法

(1)error LNK2001: unresolved external symbol _main

编号:LNK2001
直译:未解决的外部符号:_main。
错误分析:缺少main函数。看看main的拼写或大小写是否正确。

(2)error LNK2005: _main already defined in xxxx.obj

编号:LNK2005
直译:_main已经存在于xxxx.obj中了。

错误分析:

直接的原因是该程序中有多个(不止一个)main函数。这是初学C++的低年级同学在初次编程时经常犯的错误。这个错误通常不是你在同一个文件中包含有两个main函数,而是在一个project(项目)中包含了多个cpp文件,而每个cpp文件中都有一个main函数。引发这个错误的过程一般是这样的:你写完成了一个C++程序的调试,接着你准备写第二个C++文件,于是你可能通过右上角的关闭按钮关闭了当前的cpp文件字窗口(或者没有关闭,这一操作不影响最后的结果),然后通过菜单或工具栏创建了一个新的cpp文件,在这个新窗口中,程序编写完成,编译,然后就发生了以上的错误。原因是这样的:你在创建第二个cpp文件时,没有关闭原来的项目,所以你无意中新的cpp文件加入你上一个程序所在的项目。切换到“File View”视图,展开“Source Files”节点,你就会发现有两个文件。

在编写C++程序时,一定要理解什么是Workspace、什么是Project。每一个程序都是一个Project(项目),一个Project可以编译为一个应用程序(*.exe),或者一个动态链接库(*.dll)。通常,每个Project下面可以包含多个.cpp文件,.h文件,以及其他资源文件。在这些文件中,只能有一个main函数。初学者在写简单程序时,一个Project中往往只会有一个cpp文件。Workspace(工作区)是Project的集合。在调试复杂的程序时,一个Workspace可能包含多个Project,但对于初学者的简单的程序,一个Workspace往往只包含一个Project。

当完成一个程序以后,写另一个程序之前,一定要在“File”菜单中选择“Close Workspace”项,已完全关闭前一个项目,才能进行下一个项目。避免这个错误的一个方法是每次写完一个C++程序,都把VC6彻底关掉,然后重写打开VC6,写下一个程序。

(0)

相关推荐

  • vc提示unexpected end of file found的原因分析

    本文较为详细的分析了vc提示unexpected end of file found的原因.分享给大家供大家参考.具体分析如下: 预编译出错,检查#if与#endif是否个数一致 Error executing cl.exe 则检查你的程序是否已经运行,这说明编译可能已经通过,程序仍在内存中 可能是类后没有加分号,或上面的漏了个"{"号或"}"号. 1. 如果你的部分代码从某些网页拷贝,最好先拷到写字板,在从写字板粘贴到VC中. 2. 如果你VC++工程包括了一些C

  • VC++实现通过API来查看程序错误信息的方法

    本文实例介绍了VC++通过API查看错误信息的方法,可以在遇到错误的时候,将显示出错信息并退出处理,具体的实现代码如下: if((m_hBitMap=(HBITMAP)::LoadImage(NULL,filepath,IMAGE_BITMAP,0,0,LR_DEFAULTSIZE|LR_LOADFROMFILE))==NULL) { LPVOID lpMsgBuf; DWORD dw = ::GetLastError(); FormatMessage( FORMAT_MESSAGE_ALLOC

  • VC外部符号错误_main,_WinMain@16,__beginthreadex解决方法

    本文实例讲述了VC外部符号错误_main,_WinMain@16,__beginthreadex解决方法.分享给大家供大家参考.具体如下: 在创建MFC项目时, 不使用MFC AppWizard向导, 如果没有设置好项目参数,就会在编译时产生很多连接错误, 如error LNK2001错误, 典型的错误提示有: libcmtd.lib(crt0.obj) : error LNK2001: unresolved external symbol _main LIBCD.lib(wincrt0.obj

  • VC6.0常见编译错误提示附解决方法

    (1)error C2001: newline in constant 编号:C2001直译:在常量中出现了换行.错误分析: 1.①字符串常量.字符常量中是否有换行.2.②在这句语句中,某个字符串常量的尾部是否漏掉了双引号.3.③在这语句中,某个字符创常量中是否出现了双引号字符""",但是没有使用转义符"\"".4.④在这句语句中,某个字符常量的尾部是否漏掉了单引号.5.⑤是否在某句语句的尾部,或语句的中间误输入了一个单引号或双引号. (2)er

  • ASP.NET中MVC使用AJAX调用JsonResult方法并返回自定义错误信息

    一.如何用AJAX调用JsonResult方法 比如FuckController中添加有个返回JsonResult类型的方法FuckJson(): 复制代码 代码如下: <span class="kwd">public<span class="pln"> <span class="typ">JsonResult<span class="pln"> <span class=&

  • 完美修复SVCHOST.EXE出现0x745f2780错误的方法

    1.检查WINDOWS UPDATE服务程序的设置 1)点击开始-运行,输入services.msc,回车. 2)找到Automatic Updates服务程序,双击打开,. 3)切换到"登录"选项卡,确保登录身份中的本地系统账户为选中状态,未选中"允许服务与桌面交互". 4)确保下面的硬件配置文件右边的服务状态为"已启用". 5)切换到"常规"选项卡, 确保此服务的启动类型为"自动",如果不是,请从下拉列

  • 完美解决IIS 服务器无法加载应用程序 ‘/LM/W3SVC/1/ROOT’。错误是:没有注册类别

    现象:        浏览ASP页面提示   500内部错误 事件查看器中:        [1]:                服务器无法加载应用程序 '/LM/W3SVC/1/ROOT'.错误是 '没有注册类别'.                 有关此消息的详细信息,请访问 Microsoft 联机支持站点: http://www.microsoft.com/contentredirect.asp. 有关更多信息,请参阅在 http://go.microsoft.com/fwlink/e

  • VC定制个性化的MessageBox解决方法

    相信学过VC的人都知道MessageBox()函数的用法: int MessageBox( HWND hWnd, // handle to owner window LPCTSTR lpText, // text in message box LPCTSTR lpCaption, // message box title UINT uType // message box style ); 虽然在参数uType中可以指定一些样式,但你在程序中能够对MessageBox的外观所做的定义却不多.原因

  • VC6.0常见链接错误与解决方法

    (1)error LNK2001: unresolved external symbol _main 编号:LNK2001 直译:未解决的外部符号:_main. 错误分析:缺少main函数.看看main的拼写或大小写是否正确. (2)error LNK2005: _main already defined in xxxx.obj 编号:LNK2005 直译:_main已经存在于xxxx.obj中了. 错误分析: 直接的原因是该程序中有多个(不止一个)main函数.这是初学C++的低年级同学在初次

  • SQL Server 完整备份遇到的一个不常见的错误及解决方法

    1. 错误详情 有一次在手动执行数据库完整备份时遇到如下错误: 执行多次都是这个错误信息. 提示无法生成检查点,原因可能是由于系统资源(如磁盘或内存空间)不足或者有时是由于数据库损坏而造成的. 我们检查数据库资源可以排除磁盘资源不足的情况. 2.检查点相关知识 事务日志.数据文件 和checkpoint的关系. 在SQL Server中,进行insert, update, delete时,数据并没有直接写入数据库对应的mdf文件中,而是写入了缓存里,这时,就要提到一个非常重要机制:CheckPo

  • Laravel中常见的错误与解决方法小结

    一.报错: 「Can't swap PDO instance while within transaction」 通过查询 Laravel 源代码,可以确认异常是在 setPdo 方法中抛出的: <?php public function setPdo($pdo) { if ($this->transactions >= 1) { throw new RuntimeException(" Can't swap PDO instance while within transact

  • 未在本地计算机上注册“Microsoft.Jet.OleDb.4.0”提供程序错误的解决方法

    最近在做一个导入Excel数据到数据库的程序出现了如下错误: 运行环境 数据库:SqlServer2008 R2 OS:Windows Server 2008 R2 IIS:IIS7 解决方法 在应用程序对用的应用程序池的高级设置中设置"启用32位应用程序"为"True"

  • 再谈javascript常见错误及解决方法

    初学Javascript,每天总是被很小的问题折磨半天,今晚就有好几个小问题. 第一:全部使用双引号造成匹配错误 <input type="checkbox" onmouseover="document.getElementById("test").style.display="none":"/> 改行一直报错误:unexpected toke "}"  检查半天也没有发现错误,对照发现视频上是

  • Oracle数据库TNS常见错误的解决方法汇总

    TNS是Oracle Net的一部分,是专门用来管理和配置Oracle数据库和客户端连接的一个工具,在大多数情况下客户端和数据库要通讯,就必须配置TNS.本文主要讲述了Oracle数据库TNS常见错误的解决方法如下: 1.ORA-12541:TNS:没有监听器 原因:没有启动监听器或者监听器损坏.若是前者,使用命令net start OracleOraHome10gTNSListener(名字可能有出入)即可;如果是后者,则使用"Net Configuration Assistant"

  • asp.net操作过程中常见错误的解决方法

    错误一:IIS无法识别ASP.NET,并报出以下错误: 名称以无效字符开头.处理资源 'http://localhost/likong/' 时出错.第 1 行,位置: 2 解决方法: 在命令窗口中运行: C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_regiis.exe -i [.NET 1.1] C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -i [.NE

  • Nginx启动常见错误及解决方法

    重新启动服务器,访问web服务发现无法浏览啦!登陆服务器之后进到nginx使用./nginx -s reload重新读取配置文件,发现报nginx: [error] open() "/usr/local/nginx/logs/nginx.pid" failed (2: No such file or directory)错误,进到logs文件发现的确没有nginx.pid文件 [root@localhost sbin]# ./nginx -s reload nginx: [error]

  • python中常见错误及解决方法

    python常见的错误有 1.NameError变量名错误 2.IndentationError代码缩进错误 3.AttributeError对象属性错误 详细讲解 1.NameError变量名错误 报错: >>> print a<br>Traceback (most recent call last):<br>File "<stdin>", line 1, in <module><br>NameError:

随机推荐