Cmake + vcpkg 构建 OpenCV 应用

本文介绍了如何在Windows10环境下,利用vcpkg包管理工具安装OpenCV,并详细阐述了如何在CLion中配置CMake来调用OpenCV的步骤,包括设置CMake参数、修改CMakeList.txt文件以及测试代码的编写。在安装过程中,还特别提到了解决可能出现的ninja-v命令找不到的问题和链接库的设置技巧。

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

本文主要记录使用 vcpkg 包管理工具安装 OpenCV,然后在 CLion 中使用 CMake 构建工具调用 OpenCV 的环境配置过程

环境:

  • Windows 10
  • VS 2019

安装使用 vcpkg

官方文档

1. 克隆 vcpkg

git clone https://github.com/Microsoft/vcpkg.git

2. 构建 vcpkg

.\vcpkg\bootstrap-vcpkg.bat

构建完成之后,可以将 vcpkg 所在路径加入环境变量,便于在其它目录下调用。

3. 使用 vcpkg

vcpkg install [packages to install]

另外,如果没有安装合适版本的 CMake,此过程中会自动安装。

值得注意

在使用 vcpkg 安装第三方包时,可能会出现无法构建的情况,提示无法使用ninja -v命令。

解决方法为,在Visual Studio Installer中安装英文语言包即可:

image-20211215155103658

使用 vcpkg 安装 OpenCV

直接使用一下命令即可:

vcpkg install opencv:x64-windows

其中,x64-windows为64位版本,不注明默认为32位。

编译时间较长,耐心等待即可。

CMake 中使用 OpenCV

1. 设置 CMake 参数

根据官网的提示,设置DCMAKE_TOOLCHAIN_FILE参数:

使用 CLion 时,在设置中填写即可,路径指向 vcpkg 安装的位置:

image-20211215155724057

2. 修改 CMakeList.txt 文件

需要添加的代码如下:

find_package(OpenCV CONFIG REQUIRED)
# Note: 10 target(s) were omitted.
target_link_libraries(main PRIVATE ${OpenCV_LIBS})

其中,target_link_libraries(main PRIVATE ${OpenCV_LIBS})中的main改为可执行文件名即可

另外,可以循环输出${OpenCV_LIBS}查看具体链接了哪些库:

foreach(list ${OpenCV_LIBS})
    message(${list})
endforeach(list)

因为根据 vcpkg 安装完 OpenCV 之后给的提示填写链接库,使用 OpenCV 读取读取图像时,会报无法解析外部符号的错,这里指定为所有的库。

3. 测试

#include <iostream>
#include <opencv2/opencv.hpp>

using namespace cv;


int main() {
    Mat image = imread("F:\\pics\\mine\\tx.jpg");
    namedWindow("test", WINDOW_AUTOSIZE);
    imshow("test", image);
    waitKey(0);
    return 0;
}

其中图像路径修改为本地路径。

成功显示图像:

image-20211220150020281

### 使用 Vcpkg 安装 OpenCV 4.8 版本 Vcpkg 是一个用于管理和部署 C/C++ 库的工具,能够简化依赖项管理并提供跨平台的支持。为了安装特定版本的 OpenCV 如 4.8,可以按照如下方法操作: #### 设置 Vcpkg 环境 确保已经安装了 Git 和 CMake 工具链之后,在命令行执行以下指令来获取最新版 vcpkg 并初始化它。 ```bash git clone https://github.com/microsoft/vcpkg.git cd vcpkg ./bootstrap-vcpkg.sh -disableMetrics ``` 对于 Windows 用户应替换最后一行为 `.\bootstrap-vcpkg.bat`[^1]。 #### 配置环境变量 (可选) 为了让后续过程更加便捷,建议将 vcpkg 的路径加入系统的 PATH 中去。这样可以直接调用 vcpkg 命令而无需每次都指定完整的路径。 #### 安装 OpenCV 4.8 通过下面这条命令可以选择性地安装带有额外模块(contrib modules)的 OpenCV 4.8 或者只安装核心部分。这里展示的是带 contrib 模块的方式: ```bash vcpkg install opencv4[extra-modules]:x64-windows --version=4.8.0 ``` 注意:上述例子适用于 Windows x64 架构;如果是其他操作系统或架构,则需调整三元组名称(如 `x64-linux`, `arm64-windows-static-md`)。如果不关心具体版本号也可以省略 `--version=4.8.0` 参数让 vcpkg 自动选择最新的稳定发布版本[^2]。 #### 整合至项目中 完成以上步骤后就可以在自己的工程里引入 OpenCV 了。通常情况下只需包含头文件并将链接器指向相应的静态/共享库即可。更多细节取决于所使用的构建系统(CMake, MSBuild 等)以及目标平台的要求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MCmengde

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值