OpenCV编译运行出错(编译环境问题)

一、问题:LNK2019 无法解析的外部符号 WinMain,该符号在函数 “int __cdecl invoke_main(void)” (?invoke_main@@YAHXZ) 中被引用
在编译OpenCV4.1过程中出现的问题。

二、可能的原因
主要是因为C/C++运行时找不到适当的程序入口函数,

一般情况下,在windows程序,那么WinMain是入口函数,在VS2015中新建项目为“win32项目”

在dos控制台程序,则main是入口函数,在VS2015中新建项目为“win32控制台应用程序”

当入口函数指定不合适时,程序运行时找不到相配合函数,出现上述错误。

三、通过修改对应设置适应编译环境需求

如果是windows程序:

1.菜单中选择 项目(Project)->属性(Properties), 弹出属性页面(Property Pages)窗口

2.在左边栏中依次选择:配置属性(Configuration Properties)->C/C+±>预处理器(Preprocessor),然后在右边栏的预处理器定义(Preprocessor Definitions)对应的项中删除_CONSOLE, 添加_WINDOWS.

3.在左边栏中依次选择:属性配置(Configuration Properties)->链接器(Linker)->系统(System),然后在右边栏的子系统(SubSystem)对应的项改为Windows(/SUBSYSTEM:WINDOWS)

如果是控制台程序:

1.菜单中选择项目(Project)->属性(Properties), 弹出属性页面(Property Pages)窗口
OpenCV编译运行出错(编译环境问题)_第1张图片
2.在左边栏中依次选择:配置属性(Configuration Properties)->C/C+±>预处理器(Preprocessor),然后在右边栏的预处理器定义(Preprocessor Definitions)对应的项中删除_WINDOWS, 添加_CONSOLE.
OpenCV编译运行出错(编译环境问题)_第2张图片

OpenCV编译运行出错(编译环境问题)_第3张图片

3.在左边栏中依次选择:属性配置(Configuration Properties)->链接器(Linker)->系统(System),然后在右边栏的子系统(SubSystem)对应的项改为CONSOLE(/SUBSYSTEM:CONSOLE)
OpenCV编译运行出错(编译环境问题)_第4张图片

你可能感兴趣的:(编程学习)