Mac下OpenCV4.5.5+opencv_contrib4.5.5+CMake編譯


一、概述

  背景:19年mac機上安裝過opencv,昨天清理電腦磁盤(把不要的刪除掉),結果把opencv誤刪除掉了。所以決定重新編譯一份。

      過程中遇到了不少問題,這里做個記錄,以便下次遇到的時候查閱,當然也方便其他開發同學。

二、操作步驟

  1.去opencv官網下載下載:opencv源代碼和opencv_contrib

  2.下載cmake,直接下載.dmp文件安裝即可

  3.打開cmake的gui界面,並選擇對應的路徑,如下

  

 

  4.選擇配置opencv_contrib擴展模塊,如下圖

  

 

 

  5.執行make -j4

  6.執行sudo make install進行安裝

 

三、遇到的問題

  1.下載ippicv困難和face_landmark_model.dat苦難

  解決辦法:

    a.手動下載ippicv_2020_mac_intel64_20191018_general.tgz到Downloads(可以是任意目錄,此處演示用Downloads目錄)

    b.找到opencv4.4.5源碼下的3rdparty目錄下的ippicv目錄下的ippicv.cmake並打開

  

 

  c.修改ippicv.cmake中的下載路徑為你下載文件的路徑

  

 

 

 

  2.編譯時遇到的異常,如下:

[ 58%] Linking CXX shared library ../../lib/libopencv_imgcodecs.dylib
Undefined symbols for architecture x86_64:
  "_jpeg_default_qtables", referenced from:
      cv::JpegEncoder::write(cv::Mat const&, std::__1::vector<int, std::__1::allocator<int> > const&) in grfmt_jpeg.cpp.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [lib/libopencv_imgcodecs.4.1.1.dylib] Error 1
make[1]: *** [modules/imgcodecs/CMakeFiles/opencv_imgcodecs.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....

  解決辦法:

    在源碼中找到/Users/xxx/opencv-4.2.0/3rdparty/libjpeg-turbo 目錄並打開,打開CMakeLists.txt打開找到如下圖所示:

    

 

    參考:https://github.com/opencv/opencv/issues/18541

 

三、總結

  這一次配置環境搞的時間有點久,從昨天早上到今天上午才搞定。主要的坑在於config時下載文件的速度過慢,還有版本問題。特別是版本問題如果是最新的系統,最好選用opencv最新版本。我反反復復的嘗試好好多個版本,從4.0.0、4.1.1、4.1.2、4.5.2、4.5.5,其中有各種各樣的問題,最后編譯好的是4.5.5(我把系統升級到了最新版)  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM