Clion配置opencv開發環境

之前嘗試用vs寫opencv的項目,但是因爲各種使用習慣很難改過來,加上vs的快捷鍵和代碼智能提示相當的蛋疼,所以嘗試着在clion上配置opencv開發環境。

以下是詳細配置過程:

預先需要安裝的軟件:

clion:這個是jetbrain家出品的C++集成開發環境,如果你用習慣了idea,pycharm,那麼上手這個軟件,應該也是比較簡單的。相比較巨硬家的visual studio而言,個人覺得vs的快捷鍵着實蛋疼,而且用的確實少,一些窗口設置不太習慣。這個軟件安裝比較簡單,不詳細展開

mingw: opencv需要用到c++編譯環境,mingw是比較常用的一個。不過,需要安裝支持多線程的版本,即posix版本,如果不用這個版本,在編譯的時候會出問題。[下載地址](https://jaist.dl.sourceforge.net/project/mingw-w64/Toolchains targetting Win64/Personal Builds/mingw-builds/8.1.0/threads-posix/seh/x86_64-8.1.0-release-posix-seh-rt_v6-rev0.7z) ,下載好之後,還需要配置環境變量,如下圖所示:

通過在命令行中運行如下命令,查看是否成功安裝

gcc --version

cmake:這個軟件的安裝也比較簡單,也可以不用配置環境變量,因爲後期生成Makefile文件也是在gui界面裏面生成的。Cmake下載地址 舊版的Cmake可以自定義設置entry開啓或者關閉,我下載的是最新的,問題不大。

編譯安裝opencv

  1. 下載opencv並解壓到一個路徑下

  2. 使用cmake-gui生成makefile文件

    下載好後的opencv存放路徑和文件目錄結構如下

    打開cmake的圖形化工具,選擇好相應的路徑

然後選擇tools菜單,點擊configure,這個過程需要持續一定的時間,並且很可能會失敗,遇到各種錯誤,遇到錯誤之後,不用擔心,一個一個錯誤解決即可,大部分的錯誤基本上都是文件下載失敗錯誤。這個過程會在GitHub上下載三個文本文件,如果沒有配置FQ的話,很有可能會下載失敗,我們可以手動下載好這三個文件並存放到相應的目錄,即可成功解決。之後繼續點擊configure。

這三個下載失敗的文件,就是上圖中藍色字體,複製對應的下載路徑,手動下載好之後,修改文件名,然後存放到對應的目錄中。

舉個例子:

第一個文件,下載路徑是:https://raw.githubusercontent.com/opencv/opencv_3rdparty/629590c3ba09fb0c8eaa9ab858ff13d3a84ca1aa/ffmpeg/opencv_videoio_ffmpeg.dll

存放的路徑是:

D:/software/opencv_clion/opencv/sources/.cache/ffmpeg/638065d5a0dab8a828879942375dcac4-opencv_videoio_ffmpeg.dll

文件內容須和指定文件下載鏈接中的文件內容一致,第三個文件用瀏覽器打開是直接顯示文件內容,如果你選擇複製手動創建這個文件,md5校驗可能會失敗(空格或者其它的字符不匹配等等),文件名,文件存放路徑,必須和日誌文件完全一樣。

排查好這三個錯誤,後面繼續configure就沒有問題了。

這三個文件,我也提供下載鏈接:

ffmpeg_version.cmake)

opencv_videoio_ffmpeg.dll

opencv_videoio_ffmpeg_64.dll

configure結束之後,開始generate,也是點擊cmake的tools菜單項,選擇generate,生成makefile文件

然後git bash進入到mingw_build目錄下,之後運行以下命令

mingw32-make -j4

利用mingw進行編譯。-j4代表使用四個線程加速編譯。可根據自己電腦配置合理選擇。 編譯時間較長,大約十幾分鐘左右。此時如果報錯可能MinGW版本選擇問題。

結束之後,運行以下命令

mingw32-make install

配置環境變量,將{opencv_homedir}/opencv/MinGW-build/install/x64/mingw/bin加入環境變量中的path中。

clion新建項目

CMakeLists.txt文件內容如下:

cmake_minimum_required(VERSION 3.20)
project(learnopencv)

set(CMAKE_CXX_STANDARD 14)
set(OpenCV_DIR D:\\software\\opencv\\mingw_build\\install)
find_package(OpenCV REQUIRED)
include_directories(${OpenCV_INCLUDE_DIRS})
add_executable(learnopencv main.cpp)

target_link_libraries(learnopencv ${OpenCV_LIBS})

main.cpp文件內容如下:

#include "iostream"
#include<opencv2/opencv.hpp>

using namespace std;
using namespace cv;

int main() {
    Mat img = imread("D:\\projects_cpp\\unarchived\\learnopencv\\images\\lena.jpg");
    if (img.empty()) {
        cout << "Error" << endl;
        return -1;
    }
    imshow("Lena", img);
    waitKey();
    return 0;
}

運行結果如下:

ok,大功告成

大家如果配置環境過程中遇到了其他的問題,歡迎評論區留言,我基本上配了三天才完全配好這個環境,可以說踩了很多坑了。我看到了,都會及時回覆的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章