[VS2019] 无法解析的外部符号 _main

716 阅读1分钟

LNK2019 无法解析的外部符号 _main,函数 "int __cdecl invoke_main(void)" (?invoke_main@@YAHXZ) 中引用了该符号

问题描述

使用Visual Studio 2019创建空项目,从头开始编写一个Windows桌面应用程序,运行时报错如下:

image.png

问题原因

  • 代码实现的是Windows桌面应用程序,但Visual Studio 2019创建的默认的空项目是控制台应用程序,导致C++运行时找不到对应得到入口函数。C++运行时入口函数类型

解决方案

  • 修改项目的执行目标为桌面应用程序
    • 修改预处理器中的定义为_WINDOWS(默认为_CONSOLE);

image.png - 修改连接器的系统里的子系统类型为窗户(/SUBSYSTEM:WINDOWS)(默认为控制台(/SUBSYSTEM:CONSOLE));

image.png