python静态编译exe_windows 静态编译opencv3,生成可执行文件.exe,无需依赖环境运行【visual studio 2019 + cmake + opencv3】...

概述

准备工作

静态编译opencv3

在项目中使用opencv3静态库(不用.dll)

可能出现的问题

准备工作

安装 visual studio 2019

在我的博文中有写:安装VS 2019

已安装的可以跳过。

安装cmake

在我的博文中有写:安装cmake

下载opencv

下载连接:opencv 下载

这里我选择的是opencv3.4.10,你也可以根据需要下载别的版本。

点windows,下载opencv安装的可执行文件并运行,选择一个文件夹extract就行。

cmake静态编译opencv3

打开cmake-gui

选择opencv所在的源文件夹(就是你安装的opencv在的那个位置,要具体到source文件夹)

选择opencv要编译到的目标文件夹

点击“configure”,选择你电脑安装的visual studio版本,我选的是2019

标红报错python相关的没有关系不用管,如果中断了继续点configure

configure结束后会有很多标红选项,这个时候有几个选项要取消勾选:BUILD_SHARED_LIBS(编译静态库),BUILD_JAVA(c++用不到java),BUILD_EXAMPLES,BUILD_TESTS,BUILD_PERF_TESTS

继续点configure,标红不管再点configure直到完成

点 generate

在VS 2019中调试opencv静态库

打开刚刚cmake编译完的目标目录,找到OpenCV.sln,打开(visual studio 2019)

点击debug和release都要调试一遍,切换的时候都要设置一次“配置管理器”,设置方法如下:

点开配置管理器,在INSTALL上打勾

如果不需要python和java,可以把这个也一并取消勾选:

设置完成后关闭,点击调试器开始调试。这一过程会花一段时间。

调试时出现于python相关的不用管。出现ALL_BUILD有什么问题也不用管(除非你的解决方案不止一个项目,自行百度)

调试完成后,右键“解决方案”–>“重新生成解决方案”

找到CMakeTargets中的INSTALL,右键选择“仅限于项目”–>“仅生成INSTALL”

结束后得到的文件夹有很多东西,主要看看里面有没有install文件夹,具体内容可以参考:

在项目中静态链接opencv3

清除动态链接的设置(重要!)

把项目属性里面所有的动态链接设置全部清除掉,包括:

“链接器”–>“常规”–>“附加库目录”

“c/c++”–>“附加包含目录”

“链接器”–>“输入”–>“附加依赖项”里的动态链接的.lib文件

(比如opencv_world349.lib或者opencv_world349d.lib)

以上三个一定要删掉!

静态链接设置

打开你用opencv写的项目,右键项目名 –> “属性”,配置如下:

1)“高级”–>“MFC的使用”–>"在静态库中使用 MFC"

2) “C/C++”–>“代码生成”–>“运行库”–>“多线程 (/MT)”【如果是debug选MTD,release选MT】

3) 在“VC++目录”–>"包含目录"中添加:

"XXX\install\include\"

"XXX\install\include\opencv"

"XXX\install\include\opencv2"

XXX就是你刚调试完opencv静态库那个文件夹

4)在"VC++目录"–>“库目录” 添加路径

XXX\install\x64\vc16\staticlib

5) “链接器”–>“输入”–>"附加依赖项"

复制下面代码到依赖项的最前面。

(其中349为opencv版本号,你根据你自己的修改,其实就是“XXX/install/x64/vc16/staticlib/”里的所有.lib文件,系统自带的lib不要删!!不要删!!)

IlmImf.lib;ittnotify.lib;libjasper.lib;libjpeg-turbo.lib;libpng.lib;libprotobuf.lib;libtiff.lib;libwebp.lib;opencv_calib3d349.lib;opencv_core349.lib;opencv_dnn349.lib;opencv_features2d349.lib;opencv_flann349.lib;opencv_highgui349.lib;opencv_imgcodecs349.lib;opencv_imgproc349.lib;opencv_ml349.lib;opencv_objdetect349.lib;opencv_photo349.lib;opencv_shape349.lib;opencv_stitching349.lib;opencv_superres349.lib;opencv_video349.lib;opencv_videoio349.lib;opencv_videostab349.lib;quirc.lib;zlib.lib;

ps:如果你要分release和debug来添加依赖项也可以,debug就是文件名里末尾带d的lib文件

6)调试即可

比如你配置的属性是debug x64 ,调试时也要这样

静态链接编译成功

编译成功后,你写代码的项目文件夹的“/x64/debug(or release)/”下就能找到.exe文件,可以脱离环境运行~!

其实只需要两个文件就可以运行!:

可能遇到的问题

提示没有安装MFC

打开visual studio 2019 installer–>“修改”–>“单个组件”–>选择MFC相关的x86,x64组件–>修改安装

显示什么.lib文件找不到或者XX无法解析

检查附加依赖项里的.lib文件:

有没有书写错误

有没有漏加多加的(不要有什么.cmake文件夹在里面哈)

动态链接的.lib有没有删除

系统自带的.lib有没有被误删

检查动态链接的其他配置有没有删干净。

欢迎提问讨论~~

标签:exe,lib,opencv,windows,opencv3,文件夹,2019,静态,链接

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值