欢迎访问本站,希望站内信息可以帮助到您!感兴趣的,可以加入我的知识星球,一对一解答!

windows上clion配置opencv环境

OpenCV 迷途小书童 0评论

环境

简介

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

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

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

图片来自网络

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

CLion

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

MinGW

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

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

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

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

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

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

cmake

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

opencv

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

下载完成后解压

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

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

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

Configure 完成后,再点击 Generate

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

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

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

整体环境测试

打开 clion,新建一个项目

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

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

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

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

接下来,修改下 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 也拷贝到这里,然后执行

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

将其拷贝到 C:\Windows\System32

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

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

喜欢 (0)
发表我的评论
取消评论

表情