上一篇文章中,为了编译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
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/185413.html原文链接:https://javaforall.cn