Windows上使用CLion配置OpenCV环境

环境

  • widnows 10

  • clion 2022.1.1

  • mingw 8.1.0

  • opencv 4.5.5

简介

Visual Studio 2019配置OpenCV开发环境 介绍了在 Visual Studio 集成开发环境中如何使用 OpenCV,本文使用另一个也是很受程序员欢迎的集成开发环境 CLion,看看在 CLion 中是怎么使用 OpenCV 的。

这里再啰嗦一句,很多初学者很容易搞混,集成开发环境也就是 IDE,它和编译器的区别。

编译器是一整套工具,它负责将高级编程语言编写成的源码程序编译成计算机识别并可运行的二进制文件,跟写代码用的工具没有任何关系。比如 gcc,它就是编译器。

5e3b2f2474ead25ab41dab026de43d14.png

图片来自网络

IDE 是提供程序开发环境的应用程序,一般包括了代码编辑器、编译器、调试器和图形用户界面工具,它基本上涵盖了软件代码编写需要的所有工具。比如 visual studioCLion 就是 IDE,在 IDE 中一般都可以自己选择所要使用的编译器。

CLion

来到 jetbrains 官方下载页面https://www.jetbrains.com/clion/download/#section=windows,下载 exe 安装文件后,傻瓜式安装

c3dfeb04ea27bb5f061b8eb0331f1b7e.png

MinGW

MinGW 是本文中我们要用到的编译器,它集成了 gcc,首先来到官方的下载页面

https://sourceforge.net/projects/mingw-w64/files/Toolchains targetting Win64/

这里选择目前最新的版本 8.1.0

79eda95e9cf030bea56a9200e925fe13.png

下载完成后,解压,然后将其中的 bin 目录加入到系统环境变量中

83c3b9e51a3e2572deab4308e6e34c2b.png

然后,新开一个命令行,输入命令 gcc -v 来验证一下

4f7b49fd17c64a1bfe4633c5c65c7b47.png

命令有输出,且版本号与安装的版本一致,说明安装成功

cmake

同样也是来到官网,https://cmake.org/download/,下载后,傻瓜式安装,然后,将其也加入到系统环境变量中

d8d35794253684c101f0ad96ee817324.png

opencv

来到官网 https://opencv.org/releases/,下载 windows 对应的版本,现在最新的版本是 4.5.5

a272219b321918ff92aa1ed471871ff9.png

下载完成后解压

e2a0c4dda67239fc387018b186005bb6.png

opencv 默认只提供了 msvc 编译的版本,在 build 目录下,源码文件在 sources。因此接下来,我们需要使用 mingw 来编译 opencv,首先在 opencv 的解压目录下新建一个文件夹 mingw_build,用来存放编译生成的文件

16a3c2b9f745b7c1510316b96e315ec8.png

然后打开 cmake-gui.exe,在 Where is the source code: 选择 opencv 下的 sources文件夹,而 Where to build the binaries: 选择前面创建好的 mingw_build 文件夹

a30a29cbd33b71a5ba1aac487625146f.png

然后点击 Configure,在 Specify the generator for this project 中选择 MinGW Makefiles

cb6d1913aeb4833d1b1a20955c09b986.png

7252fdd4648bf7d8e0e58d41547ae7ed.png

Configure 完成后,再点击 Generate

36519c3e7957cd3dd656547202ec624e.png

Generate 完成后,我们进入到 mingw_build 文件夹,打开终端工具,执行命令 mingw32-make.exe 开始编译

6db1ec2e3a73c0f5fa447e45b7af969a.png

35c9ee1910d1d34e2dbfb69493fb570b.png

0a5e857468f6c6355a8da82beff12cf1.png

然后执行安装,mingw32-make.exe install

9cb9a89194a4e66c3df8ab5d1824198a.png

5d65b3bb34dd34971aedd1f6518af0b0.png

可以看到,相关的文件都被拷贝到了 mingw_build\install 目录下,然后将目录 mingw_build\install\x64\mingw\bin 加入到系统环境变量中

69a4c9e0ac678560bb72b0bbfedbcbbb.png

整体环境测试

打开 clion,新建一个项目

bad616b806358515f573ddbe35417b99.png

进入到 File --> Settings --> Build, Execution, Deployment --> Toolchains,在 Toolset 中,选择前面我们安装的 mingw 版本

7d9388ba86c1dbfc78c32e14f1f7baf2.png

默认情况下,clion 中只能使用 Debug 模式下运行程序,因此,我们来增加 Release 模式,这一步非必需。

进入到 File --> Settings --> Build, Execution, Deployment --> CMake

80f0f6630cfe2a9885bd23f19661c294.png

设置完成后,程序运行时就可以选择是 Debug 还是 Release

325efc49a7dbbfae98d96a970e33d2b9.png

接下来,修改下 CMakeLists.txt,内容如下

cmake_minimum_required(VERSION 3.21)
project(OpenCVDemo)

set(CMAKE_CXX_STANDARD 11)

set(OpenCV_DIR "C:\\Users\\xgx\\Downloads\\Programs\\opencv\\mingw_build\\install")
find_package(OpenCV REQUIRED)
include_directories(${OpenCV_INCLUDE_DIRS})
add_executable(OpenCVDemo main.cpp)
target_link_libraries(OpenCVDemo ${OpenCV_LIBS})

然后修改源码文件 main.cpp,写一段简单的读取图片并显示的程序,内容如下

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

using namespace std;
using namespace cv;

int main() {
    Mat srcImage = imread("D:\\CLionProjects\\OpenCVDemo\\Lenna.jpg");
    if (!srcImage.data) {
        std::cout << "Image not loaded";
        return -1;
    }
    imshow("image", srcImage);
    waitKey(0);
    return 0;
}

编译成功后,会在目录 cmake-build-release-mingw 生成可执行文件 OpenCVDemo.exe,我们将测试图片文件 Lenna.jpg 也拷贝到这里,然后执行

23458f16d9e15ce2303f44bfc853fb3e.png

这里直接报错了,解决方法是找到 mingw 解压目录下的库文件 libstdc++-6.dll

6210fbbb35b66be001c982ed1e351506.png

将其拷贝到 C:\Windows\System32

d2f571fbde1d27585776b93537478a40.png

最后,再次执行可执行程序,就可以得到结果了

06d7c4790643d7dd9081619b74e4c462.png

到这里,整个过程就结束了。

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

迷途小书童的Note

请博主喝矿泉书!

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

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

打赏作者

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

抵扣说明:

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

余额充值