一、配置MinGW环境
从百度上搜了一些资料讲在线安装会因为各种网络问题导致安装失败。因此直接使用Dev-C++编辑器自带的MinGW环境。
资源来这里找:https://pan.baidu.com/s/1sqWsyG1r1BDjwfaq75pSKQ
提取码:6j99
参考了博客:https://blog.youkuaiyun.com/Cui_Hongwei/article/details/104693174/
(也在自己百度网盘的-总结资料 -> windows系统clion中添加opencv依赖工具 下保存了)
双击安装程序,傻瓜式安装Dev-C++,将目录下的MinGW64\bin文件添加到系统环境变量中。
验证环境变量是否添加成功,可以打开CMD,输入gcc -v,有如下输出代表环境变量配置正确。
第二步,使用cmake-gui配置安装环境
双击打开,可以看到如下界面
①. opencv安装包解压目录
②. 新建文件夹命名为mingw-build用于存放编译的中间产物
③. 上面的两个步骤都配置完之后,点击configure,选择MinGW编译环境,开始配置。
重点!!!
1.点击 Configure,设置编译器
2.Specify the generator for this project: MinGW Makefiles
3.Specify native compilers
4.Next
5.Compilers C: C:\Program Files (x86)\Dev-Cpp\MinGW64\bin\gcc.exe
6.Compilers C++: C:\Program Files (x86)\Dev-Cpp\MinGW64\bin\g++.exe
编译配置:(具体根据自己的需求进行添加和去除)
7.勾选 WITH_OPENGL 和 ENABLE_CXX11
8.不勾选 WITH_IPP
9.不勾选 ENABLE_PRECOMPILED_HEADERS
10.配置好后,再次点击 Configure,此时配置会变成白色。然后点击Generate 生成 Makefile
ps:我用的opencv版本是3.4.0
三、编译 Opencv
打开终端进行编译:(-j 是使用 8 个线程进行编译,请根据你的计算机配置合理设置线程数)
f:
cd F:\opencv\mingw-build
mingw32-make -j 8
mingw32-make install
四、Clion中配置opencv编译的目录
1、在 setting 下的 Toolchain 配置好 MinGW 的路径
2、点击Edit Configurations
3、选择Working directory,填入opencv编译后的bin文件夹
五、附上我自己的cmakelist
cmake_minimum_required(VERSION 3.17)
project(moudle_opencv)
set(CMAKE_CXX_STANDARD 11)
# 设置OpenCV目录所在
set(OpenCV_DIR "F:\\opencv\\mingw-build")
find_package(OpenCV REQUIRED)
# 添加OpenCV头文件目录
include_directories(${OpenCV_INCLUDE_DIRS})
add_executable(moudle_opencv main.cpp)
# 链接OpenCV库文件
target_link_libraries(moudle_opencv ${OpenCV_LIBS})
cpp代码
#include <opencv2\opencv.hpp>
#include "iostream"
using namespace std;
using namespace cv;
int main() {
std::cout << "OpenCV version : " << CV_VERSION << std::endl;
std::cout << "Major version : " << CV_MAJOR_VERSION << std::endl;
std::cout << "Minor version : " << CV_MINOR_VERSION << std::endl;
std::cout << "Subminor version : " << CV_SUBMINOR_VERSION << std::endl;
Mat img = imread("C:\\Users\\Administrator\\Desktop\\aa.png");
if (img.empty()) {
cout << "Error" << endl;
return -1;
}
namedWindow("pic", WINDOW_FULLSCREEN);
imshow("pic", img);
waitKey();
return 0;
}