【问题】VS编写C++/C时出现错误LNK2001 无法解析的外部符号 _main

先说解决方案:

确认你程序入口函数是:_main,还是_WinMain

在这里插入图片描述

_main的话 在上述界面里面选择控制台    /SUBSYSTEM:CONSOLE 
_WinMain 在上述界面里面选择未设置或者 /SUBSYSTEM:WINDOWS

也有别的选择,只是这两个比较容易错。直接修改程序入口时需要注意下对应关系!

错误原因

1 原因

在一次项目中,想着偷懒直接使用之前的基建项目来做界面,界面用的是duilib。之前的项目是控制台,在使用过程中,直接将入口函数由_main换成了_WinMain,编译直接导致如上错误。

2 理解程序的默认入口

默认情况下,起始地址是 C 运行时库中的函数名称。 链接器根据程序的属性选择起始地址,如下表所示。

函数名称以下项的默认值
mainCRTStartup(或 wmainCRTStartup)使用 /SUBSYSTEM:CONSOLE 的应用程序;调用 main(或 wmain)
WinMainCRTStartup(或 wWinMainCRTStartup)使用 /SUBSYSTEM:WINDOWS 的应用程序;调用 WinMain(或 wWinMain),必须定义为使用 __stdcall
_DllMainCRTStartup使用 /SUBSYSTEM:WINDOWS 的应用程序;调用 WinMain(或 wWinMain),必须定义为使用 __stdcall
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值