Visual Studio静态编译工程-以编译包含opencv库的工程为例

描述

        起因是由于课程需要将本地的可执行文件发送到其他主机运行,以及需要在gitee上发布下载下来即可直接运行的文件。然鹅opencv的库繁多,动态编译需要的动态链接库很乱,且动态编译时c++的某些动态链接库也需要包含进去,很容易出错。

        

        因此使用visual studio的静态编译进行编译,最终需要的依赖库会大幅减少。

具体操作

        找KIMI问了一个比较简短的流程

        工具查找依赖项和打包发布部分不用管,我们先进入Visual Studio中进行配置

打开项目属性

修改配置到release模式,原因是debug模式下opencv的dll文件要使用d.dll可能会有问题,另外使用release模式还有一个好处就是可以快速切换动态编译和静态编译,让debug时进行动态编译,生成的exe会更小。

接下来是配置opencv的环境,这部分应该搜这个问题的同学都会,不多赘述,主要是在vc++目录配置外部包含目录和库目录,在链接器->输入添加opencv的依赖项,注意release配置和debug唯一的不同点在于依赖项要用不是d结尾的ddl文件

外部依赖项添加时,release用上面那个,debug用下面那个

最后是在C/C++中的代码生成部分将运行库改为多线程/MT

现在将配置改为release,编译运行即可

以上是静态编译的部分,但静态编译只包含了c/c++的内置库,要运行opencv项目还需要手动将opencv的dll文件,添加到可执行文件的同目录下才可运行,路径是"你保存opencv的路径"\opencv\build\x64\vc16\bin,要注意它不是以d结尾 。

同时你的代码中涉及到了视频的读写,需要在exe同目录位置添加以下两个dll文件,才能正常运行,这是因为OpenCV在读取MP4文件时依赖于FFmpeg库,而静态编译不会包含这些库,这些库的位置也在"你保存opencv的路径"\opencv\build\x64\vc16\bin中,要注意添加的dll名称结尾不是d。

以上是全部内容了,祝你开发愉快。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值