cmake 编译curl源码_(四)源码和编译

本文介绍如何从源码编译 OpenCV 4.1.1 版本,包括新增功能如 C++11 支持、Vulkan API、QR 码识别等,并详细说明使用 CMake 工具进行配置与生成解决方案的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

c59e0e00f3446a1ae3ed8064de20f7a3.png

时间为友,记录点滴。

作为一名不务正业的程序员,怎么可能拿过来就用OpenCV的一堆眼花缭乱的功能呢?当然是先read the fucking source code,以及搞清楚这堆代码是怎么生成可以使用的lib的呢?

(先友情提示一下,最好全部路径都不要出现中文。)

一、下载源码

当然是github下载最新源码了。

opencv/opencv​github.com
65ab93dc902aa49b133e3f282bee7f39.png

想当年第一次了解OpenCV的时候还是3.0,现在一不小心,已经4.1.1了。相较于3.0有什么重要更新呢?

1) 更新代码支持 c++11 特性,需要兼容 c++11 语法的编译器

474a0f3c52a9182b336280b347203e15.png
C++ 11


2)增加 dnn 中的模块功能,新加了 Vulkan API 程序接口

efdeccdaf15d8eb88649dbbeaaf0e23c.png
Vulkan

f6672c0c4a0463e9bb086c1b704e0ba7.png
DNN
3)集成了完整的 QR 码识别功能

294a6f5ae01349cd0755b2df56279868.png
QR
4) 新加的 opencv_gapi 模块
opencv/opencv​github.com

bb2398c83183cf63cd28a17e71cd0d14.png
opencv_gapi
5) 整体速度的提升

773921190c6c981e54b4554a1ae3bfe9.png
Performance improvements
6) 增加流行的 Kinect 融合算法

a15c02520a4a4c4fa61b1f48f8d7ec43.png
Kinect Fusion algorithm
7) DIS 稠密光流检测算法从 opencv_contrib 模块移到 opencv video 模块

4ff3d91f134dda78b8144d32ecf5f5ac.png
DIS dense optical flow algorithm

二、下载安装CMAKE

啥是CMAKE?就是跨平台的编译工具。从哪里下?点我。

Download | CMake​cmake.org

写这篇文章的时候,最新的CMake版本是3.14.5,我们这个系列用的是Windows 64,就找Windows 64版本 download。

cmake-3.14.5-win64-x64.msi​github.com

c75b0635e5fe6b961f64d6c7099d28bc.png
根据自己的操作系统选择32/64位版本

安装完成后,可以在环境变量中看到有增加C:Program FilesCMakebin路径(如果你选择了增加Path到环境变量中)

1667f5495aaf7566d117eb69bcd25a7a.png
cmake 文件

三、编译

OpenCV和CMake都是开源的,但是我们这里先按住自己的小好奇,记住我们的首要任务是把OpenCV用CMake编译出来。

  • 运行cmake

运行cmake-gui,如果没设置快捷图标,可以在cmake的安装目录C:Program FilesCMakebin找到cmake-gui.exe源文件。

dfbc8f83b591b6fe9dc6cecea9323133.png
source code: 选择刚刚download的OpenCV的源码路径;Binfile随意
  • 配置

选择好source和bin的路径后,就可以点击左下角的Configure了,弹出来的按钮,我选择的是下面:

7f76eabd1b490e03dfeb76a6bad12125.png
VS2017 + OpenCV + Windows64

43f29306caf0d65ce09665f0e4fa11ed.png
如果不知道自己VS的版本,可以在VS的Help中找找看

一般来说第一次配置都会出现下面的情况,一片红(A股要是一直都这样就好了)。不要紧,再点一遍Configure就好了,直到完全没有红色。

b939cd39859fd3c13c0b9a83e52b809a.png
重新点击Configure

8f0d51a733f7a04fcbfd645f52d4040b.png
我的是重新点了一遍,就全部Ok了。
  • Generate

到了这一步,点击Generate就可以啦。

f7b01e4de944cdc7602afb009d62873f.png
多了一个图标,log区域显示全部done。

四、编译

先看看我们上一步在配置中都有什么输出,在build的目录下面一定多了好多文件,找到OpenCV.sln文件。双击打开就可以了(需要关联了VS先)

直接F5,运行:

我的结果如下:编译84个项目,全部成功,但是执行失败。其实执行失败很正常,因为我们要编译出来的是bin文件,又不是exe文件。

2c7c99444667f9f736f9ff2bfb4d017d.png
编译 Done

可以搜索dll文件。

38385a4ccbb1d22526bc899df86bb1d9.png
build目录下面就是生成的文件,分debug/release

大功告成啦,我们可以用我们生成的这些文件,在以后的例子中,替换掉官方默认release的库。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值