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”视图,展开“SourceFiles”节点,你就会发现有两个文件。(删掉一个就行了)

在编写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,写下一个程序。

或者把以前写的全都注释起来,重写新的

错误LNK1169是一个编译错误,它表示找到一个或多个多重定义的符号。这个错误通常会在项目中存在多个具有相同名称和功能的函数或变量时出现。 在你的情况中,根据引用和引用[2]的信息,你在vs2022上使用了EasyX在控制台展示图片,但出现了多重定义的符号错误。这个错误可能是由于你在源文件中定义了两个main函数导致的,一个是系统已经提供的,另一个是你自己新建的cpp文件中的。编译器无法确定使用哪个main函数作为程序的入口点,因此出现了多重定义的符号错误。 为了解决这个问题,你可以注释掉其中一个main函数。根据引用的建议,你可以注释掉不需要调试的源文件,包括#define _CRT_SECURE_NO_WARNINGS和#include <stdio.h>。这样做可以确保只有一个main函数在项目中,并且编译器可以正确地找到程序的入口点。 请注意,确保你注释掉了正确的源文件,只注释掉不需要调试的文件,以避免出现其他编译错误。同时,建议在编写代码时仔细检查函数和变量的定义,确保不会出现重复定义的情况。 总结起来,要解决错误LNK1169找到一个或多个多重定义的符号,你可以注释掉不需要调试的源文件,确保只有一个main函数在项目中。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [【编译器问题】“fatal error LNK1169: 找到一个或多个多重定义的符号“ 解决方案](https://blog.csdn.net/weixin_63566038/article/details/124086703)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [显示状态错误 LNK2005 main 已经在 xxxx.obj 中定义 ;LNK1169 找到一个或多个多重定义的符号](https://blog.csdn.net/TIG_JS/article/details/128190317)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值