为什么是做简单
基于msys2,是用mingw-gcc编译。
opencv用包管理器自动下载,无需手动配置。
步骤
下载安装msys2
https://www.msys2.org/
从官网下载msys2并安装
安装gcc,OpenCV
打开
pacman -S mingw-w64-x86_64-toolchain mingw-w64-x86_64-opencv mingw-w64-x86_64-pkg-config mingw-w64-x86_64-qt5-base mingw-w64-x86_64-icu
这里还有坑点的,不仅要装编译器和opencv,后面那些也要装。
编译测试
新建main.cpp
- 示例程序来自https://blog.csdn.net/weixin_43863869/article/details/127952369
# include<opencv2/opencv.hpp>
# include<cstdio>
using namespace cv;
using namespace std;
int main(int argc, char *argv[]){
// 打开摄像头
VideoCapture cam(0);
if (!cam.isOpened()){
cout << "cam open failed!" << endl;
getchar();
return -1;
}
cout << "cam open success!" << endl;
namedWindow("cam");
Mat img;
for(;;){
cam.read(img); // 读帧
if (img.empty()) break;
imshow("cam", img); // 显示每一帧
if (waitKey(5) == 'q') break; // 键入q停止
}
return 0;
}
编译
g++ main.cpp `pkg-config --libs --cflags opencv4`
CMake支持
# cmake版本最低要求
cmake_minimum_required(VERSION 3.8)
# 工程名,会产生"${PROJECT_NAME}"变量
project(OpenCV_Test)
# set用来定义变量,变量使用时用"${变量名}"的形式
set(CMAKE_CXX_STANDARD 11)
# 用find_package寻找OpenCV,找到后会有"${OpenCV_INCLUDE_DIRS}","${OpenCV_LIBRARIES}"两个变量可供使用,第一个是头文件位置,第二个是库文件
find_package(OpenCV REQUIRED)
# message用来打印信息,这里打印下找到的OpenCV的头文件和库文件的信息,可以不做
message(STATUS "OpenCV Include: ${OpenCV_INCLUDE_DIRS}")
message(STATUS "OpenCV Libs: ${OpenCV_LIBRARIES}")
# 找到在当前目录下的所有代码文件,存储到"SOURCE_FILES"变量中
aux_source_directory(. SOURCE_FILES)
# 打印下刚才的"SOURCE_FILES",同样可不做
message(STATUS "src: ${SOURCE_FILES}")
# 定义需要include的头文件的位置
include_directories(${OpenCV_INCLUDE_DIRS})
# 添加个可执行的输出,第一个参数是输出名,必须唯一,第二个源文件
add_executable(${PROJECT_NAME} ${SOURCE_FILES})
# 用来链接库,注意这个函数要在"add_executable"之后使用
target_link_libraries(${PROJECT_NAME} ${OpenCV_LIBRARIES})
标签:FILES,SOURCE,windows,w64,OpenCV,mingw,64,搭建
From: https://www.cnblogs.com/liux-pro/p/16933542.html