cmake编译opencv及Clion使用

采用了linux下编译OpenCV, Visual Studio 2022, QT6.2.3都不成功。

最终采用在win下编译OpenCV + Clion成功,此文记录踩下的坑。

1. 下载OpenCV源码

源码地址👇

Github:

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

2. 编译OpenCV源码

  1. 解压文件夹

opencv_1.jpg 解压win下exe文件解压后由两个文件夹,source为源码目录 opencv_2.jpg

build为已经建好的库文件目录

opencv_3.jpg

  1. CMake-gui工具构建

    opencv_4.jpg

    1. source code选择带有源码的目录,binaries选择一个新创建一个mingw-build目录,然后点击Configure,弹出的窗口选择MinGW Makefiles,第一次可能会失败,失败后再点击Configure,还不行的百度吧。
    1. 配置成功后点击Generate
    1. cd到mingw-bulid目录执行mingw32-make -j8,根据自己机器性能设置线程数,这里设置8个线程,编译时间较久,等待完成。
    1. 然后执行mingw32-make install生成库,在mingw-build生成install保存了生成库库文件和头文件。

3. 后续配置

C:\\Users\\用户名\\Downloads\\opencv\\mingw-build\\install\\x64\\mingw\\bin路径添加到win的环境变量

👇此为一个CMakeLists.txt

cmake_minimum_required(VERSION 3.19)

project(opencv_learn)

set(CMAKE_CXX_STANDARD 20)

include_directories($ENV{CMAKE_INCLUDE_PATH})
set(OpenCV_DIR C:\\Users\\用户名\\Downloads\\opencv\\mingw-build\\install\\x64\\mingw\\bin)

#需要的openCV库
FIND_PACKAGE(OpenCV REQUIRED)

#显示OpenCV的版本号
MESSAGE("OpenCV version : ${OpenCV_VERSION}")
MESSAGE("OpenCV include : ${OpenCV_INCLUDE_DIRS}")
MESSAGE("OpenCV libs11 : ${OpenCV_LIBS}")
MESSAGE("OpenCV DIR : ${OpenCV_DIR}")
include_directories(${OpenCV_INCLUDE_DIRS})
link_directories(${OpenCV_LIBS})
MESSAGE("OpenCV libs : ${OpenCV_LIBS}")

include_directories(${OpenCV_INCLUDE_DIRS})
link_directories(${OpenCV_LIBS})

set(SOURCE main.cpp)

# 将源代码添加到此项目的可执行文件。
add_executable (${PROJECT_NAME} ${SOURCE})

TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${OpenCV_LIBS})