MinGW-CMake-OpenCV-Clion 配置

参考

CLion 中 的 MinGW 配置(及中文坑解决) - 知乎 

Windows-MinGW-CMake-OpenCV 配置 - 知乎

前言

笔者前面发布了vs2019下opencv的配置教程,但是vs的项目有点臃肿,相对而言笔者更喜欢用clion进行开发.于是有了这片探索博文.

安装CMake与MinGW64

第一部分都是照搬的知乎一位作者的答案,因为写的很好没有必要改.

首先安装CMake,下图演示了大概安装流程:

MinGW-CMake-OpenCV-Clion 配置_第1张图片

1- 去 CMake 官网(https://cmake.org/download/)下载系统对应的安装包,此处为:cmake-3.21.3-windows-x86_64.msi

2- 也就是这个安装包

3- 点击 Next

4- 点击 Accept 然后 Next

5- 此处可选择是否将 CMake 加入系统环境变量,我选择了加

6- 此处可选择 CMake 安装路径

7- 点击 Install

8- 此处安装需要一段时间

9- 点击 Finish

正常情况下,此时打开 Windows PowerShell,输入 cmake --version ,可以得到以下输出:

MinGW-CMake-OpenCV-Clion 配置_第2张图片

说明 CMake 安装成功。当然也可能得到以下输出:

MinGW-CMake-OpenCV-Clion 配置_第3张图片

 此时需要将 cmake 所在的 bin 路径加进环境变量中

MinGW-CMake-OpenCV-Clion 配置_第4张图片

1- 在 此电脑 上右键,点击 属性

2- 点击左侧的 高级系统设置

3- 点击 环境变量

4- 上下的 Path 环境变量随便设置一个就行

5- 将 cmake.exe 所在路径加进环境变量,通常是安装路径下的 bin 里面

注意添加环境变量时,有可能会提示路径格式不规范,改一下不规范的名称即可

注意改变环境变量后,一定要重新打开终端窗口(包括 PowerShell 或 VSCode 里面的终端),否则不会生效

再来安装 MinGW64,下图演示了大致流程:

MinGW-CMake-OpenCV-Clion 配置_第5张图片

 

1- MinGW64 的安装包被托管到 SourceForge 上面(https://sourceforge.net/projects/mingw-w64/)

2- 也就是这个安装包

3- 点击 Next

4- 配置一些选项,Version 选择最新,Architecture 可选择32位(i686)还是64位(x86_64),其他也不知道是啥就先默认吧

5- 可选择安装路径

6- 此处因为会下载一些东西,所以比较慢

7- 点击 Finish

8- 类似 CMake,也需要将 mingw64 下面的 bin 路径加入环境变量,此处不赘述,可用 mingw32-make --version 和 gcc --version 来检查是否配置好

二、HelloWorld程序(windows下cmake+mingw编译方法)

将 CMake 和 MinGW64 配置好后,就可以来写我们的第一个程序,文件结构和文件内容如下图所示:

MinGW-CMake-OpenCV-Clion 配置_第6张图片

生成 MakeFile,在此目录下:

PS C:\Users\dcyang\helloWorld> mkdir build
PS C:\Users\dcyang\helloWorld> cd build
PS C:\Users\dcyang\helloWorld\build> cmake -G "MinGW Makefiles" ..

输出:

-- The C compiler identification is GNU 8.1.0
-- The CXX compiler identification is GNU 8.1.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: C:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/bin/gcc.exe - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: C:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/bin/g++.exe - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring done
-- Generating done
-- Build files have been written to: C:/Users/dcyang/helloWorld/build

 随后 make,由于我们用的是 mingw,所以需要用 mingw32-make:

PS C:\Users\dcyang\helloWorld\build> mingw32-make 

输出:

[ 50%] Building CXX object CMakeFiles/hello.dir/main.cpp.obj
[100%] Linking CXX executable hello.exe
[100%] Built target hello

 此时新的文件结构如下:

MinGW-CMake-OpenCV-Clion 配置_第7张图片

可见,生成了 hello.exe,我们在命令行运行它:

PS C:\Users\dcyang\helloWorld\build> .\hello.exe

 输出:

Hello World

至此,已经配置好了基础的 C++环境,下面来看怎样配置 OpenCV 环境

三、编译OpenCV + opencv_contrib

下载opencv本体和扩展包,在如下地址:

本体:

https://github.com/opencv/opencv/archive/master.zip

扩展包

https://github.com/opencv/opencv_contrib/archive/master.zip

选定想要存放Opencv的路径,把两个扩展包拖过去并且解压缩.笔者这里选择的是C:\Software\OpenCV之中.

MinGW-CMake-OpenCV-Clion 配置_第8张图片

 

在选定的文件夹之中,打开一个带梯子的命令行,笔者这里是用配好的clash打开的,具体方法发不上来.大家可以自行研究.

之所以是需要带梯子,是因为有两个依赖库protobuf和ffmpeg的下载在国内是连接不上去的.

然后在这个命令行之中,创建一个用来存放build的文件夹,并进入:

C:\Software\OpenCV>mkdir mingw-build

C:\Software\OpenCV>cd mingw-build

然后用以下命令生成 MakeFiles:

cmake -DCMAKE_BUILD_TYPE=RELEASE -DCMAKE_INSTALL_PREFIX=C:\Software\OpenCV\mingw-build -DINSTALL_PYTHON_EXAMPLES=ON -DINSTALL_C_EXAMPLES=ON -DOPENCV_EXTRA_MODULES_PATH=..\opencv_contrib-master\modules -DBUILD_EXAMPLES=ON ..\opencv-master

注意根据自己的情况修改DCMAKE_INSTALL_PREFIX的值,这个是选择编译库最终存放路径,笔者这里选择依旧是在mingw-build里面.

顺利执行后,可以得到如下输出,同时在我们新建的 mingw-build 文件夹里面多出了许多文件(如果不,这步会失败,因为有的依赖包下载不下来):

MinGW-CMake-OpenCV-Clion 配置_第9张图片

 随后根据这些文件正式进行编译,执行:

mingw32-make install -j8

 其中 -j8 代表用 8核 进行加速编译,你也可以根据CPU核心数进行设置

MinGW-CMake-OpenCV-Clion 配置_第10张图片

经过一段时间的编译,会在我们创建的 build 下面新增很多文件:

MinGW-CMake-OpenCV-Clion 配置_第11张图片

 编译结束后还需要将 OpenCV 加进我们的环境变量,有两个:

setx OpenCV_DIR " C:\opencv-4.5.3\build"

 然后还有要把C:\Software\OpenCV\mingw-build\bin 加入path之中,方法跟上面cmake一样.

CLion配置(可选)

打开CLion,配置toolchains :在 Settings → Build, Execution, Deployment 中找到。

MinGW-CMake-OpenCV-Clion 配置_第12张图片

点击添加MinGW,CLion 应该会自动搜索到 mingw64 的安装位置,如图所示(如果没有搜索到就手动定位)

MinGW-CMake-OpenCV-Clion 配置_第13张图片 

 测试OpenCV

因为我们已经将 OpenCV 加进了环境变量,所以用 CMake 就可以搜索到相应的头文件和库文件。回到前面那个 helloworld 工程,更改CMakeLists.txt:

用 find_package( OpenCV REQUIRED ) 可以根据环境变量找到我们编译好的OpenCV包,并且也会设置 OpenCV_INCLUDE_DIRS 和 OpenCV_LIBS 的值

MinGW-CMake-OpenCV-Clion 配置_第14张图片

随后再进入 build,重新 mingw32-make 一次,可以得到新的 hello.exe,然后执行

如果可以画出一张图片,就说明 opencv 配置完成:

MinGW-CMake-OpenCV-Clion 配置_第15张图片

 同理,在CLion之中,创建一个项目,并且把上面的CMakeLists 还有 cpp文件复制过去,编译,也可以成功编译.大功告成!

MinGW-CMake-OpenCV-Clion 配置_第16张图片

 

 

 

你可能感兴趣的:(opencv,windows,人工智能)