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

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的库。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
引用\[1\]:CMake Error at plumbing_pub_sub/CMakeLists.txt:148 (add_dependencies): The dependency target "plumbing_pub_sub_generate_message_cpp" of target "demo03_pub_person" does not exist. 引用\[2\]:CMake Error at CMakeLists.txt:4 (CMAKE_MINIMUM_REQUIRED): CMake 3.0.2 or higher is required. You are running version 2.8.12.2-- Configuring incomplete, errors occurred! 引用\[3\]:1、下载:curl -O https://cmake.org/files/v3.6/cmake-3.6.0-Linux-x86_64.tar.gz 2、解压:tar -zxvf cmake-3.6.0-Linux-x86_64.tar.gz 注意:这个压缩包不是源码包,解压后直接用。 3、增加环境变量,使其成为全局变量: vim /etc/profile 在文件末尾处增加以下代码 export PATH=$PATH:/lnmp/src/cmake-3.6.0-Linux-x86_64/bin 注意:写自己刚安装cmake的bin的路径 使修改的文件生效 source /etc/profile 4、查看环境变量: echo $PATH 5、检查cmake版本: cmake --version 问题: CMake Error at plumbing_pub_sub/CMakeLists.txt:137 (add_executable): Cannot find source file: 回答: 根据引用\[1\]中的错误信息,CMake在执行add_dependencies时报错,提示目标"plumbing_pub_sub_generate_message_cpp"不存在。这可能是由于CMakeLists.txt文件中的依赖关系设置有误导致的。另外,引用\[2\]中的错误信息显示你正在使用的CMake版本过低,需要使用CMake 3.0.2或更高版本。你可以根据引用\[3\]中的步骤下载并安装最新版本的CMake,并将其添加到全局环境变量中。这样可以解决CMake版本不兼容的问题。至于CMake Error at plumbing_pub_sub/CMakeLists.txt:137 (add_executable): Cannot find source file:的具体原因,需要查看CMakeLists.txt文件中的代码,确认是否正确指定了源文件的路径。 #### 引用[.reference_title] - *1* [ROS通信部分编译错误](https://blog.csdn.net/m0_44999129/article/details/123158488)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [CMake安装或CMake Error at CMakeLists](https://blog.csdn.net/banyu0052/article/details/101946043)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值