2025年VS2015 error LNK2019 无法解析的外部符号 _WinMain@16,该符号在函数 “int __cdecl invoke_main(void)”[通俗易懂]

VS2015 error LNK2019 无法解析的外部符号 _WinMain@16,该符号在函数 “int __cdecl invoke_main(void)”[通俗易懂]前言 上一篇文章中 为了编译 OpenCV 的示例代码 然后搭建环境 最后想直接运行示例 demo 我在创建新工程的时候 直接创建了一个 win32 窗口项目 然后环境配置完成后 将 opencv 的示例代码 kalman cpp 直接导入到新建的 vs 工程中进行编译 直接报错 错误 LNK2019 无法解析的外部符号 WinMain 16 该符号在函数 int cdecl

前言

上一篇文章中,为了编译OpenCV的示例代码,然后搭建环境, 最后想直接运行示例demo,我在创建新工程的时候,直接创建了一个win32窗口项目,然后环境配置完成后,将opencv 的示例代码kalman.cpp直接导入到新建的vs工程中进行编译,直接报错:

错误	LNK2019	无法解析的外部符号 _WinMain@16,该符号在函数 "int __cdecl invoke_main(void)" (?invoke_main@@YAHXZ) 中被引用	opencvDemo	E:\MyWork\VSProject\opencvDemo\opencvDemo\MSVCRTD.lib(exe_winmain.obj)	1

经过网上查找问题,终于找到原因,是因为c语言运行时找不到适当的程序入口函数,一般情况下,如果是windows程序,那么WinMain是入口函数,就比如我这里创建的“win32项目”
如果是dos控制台程序,那么main是入口函数,新建项目为“win32控制台应用程序”
而如果入口函数指定不当,很显然c语言运行时找不到配合函数,它就会报告错误。
所以我这里出错的原因是我导入的kalman.cpp是一个dos控制台程序,但是我新建项目时选择的是“win32项目”,这时候修改一下配置就可以了。

解决办法:
右键工程名, 打开属性,依次找到以下路径:

然后将这里的_WINDOWS删除,并添加_CONSOLE

接下来再依次点击如下路径:

将这里的子系统切换为“控制台”,修改完成后再次编译即可。

相反,如果是windows程序,就按照相反的设置来配置即可,这里就不再赘述了。

参考地址:https://blog.csdn.net/playstudy/article/details/6661868

编程小号
上一篇 2025-06-03 12:46
下一篇 2025-08-15 16:51

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/hz/114429.html