mac_OpenCV-3.4.2(目前最新版)mac下編譯用於Java

因爲項目需要,我再次與OpenCV打交道

原本是一直在Python下使用OpenCV,這回需要在Java環境下了,說不得我又選擇重新搞

一句忠告放在前面,選最新版本!選最新版本!選最新版本!

我的各種環境:

macOS 10.13.5
Java 1.8.0
gcc 7.1.0

我原來是下載了OpenCV-3.0.0的源代碼,天知道我踩了多少坑。

網上教程也全是過時的或者胡亂轉載的(Copyright © https://blog.csdn.net/s_gy_zetrov. All Rights Reserved)。比如這個說要把

#ifdef WIN32
  #define HAVE_FFMPEG_SWSCALE 1
  #include <libavcodec/avcodec.h>
  #include <libswscale/swscale.h>
#else

修改爲

#ifdef 1
  #define HAVE_FFMPEG_SWSCALE 1
  #include <libavcodec/avcodec.h>
  #include <libswscale/swscale.h>
#else

我不知道TA當時是怎麼搞出來的,就剛剛,我這麼改了,gcc報錯:ifdef後面的1是個什麼玩意。我後來發現應該是#if 1。TA當時能編譯通過,真是厲害。

還有比如,報錯'QTKit/QTKit.h' file not found,有人給出的解決辦法是在未升級的mac系統中拷貝QTKit.framework從裏面提取QTKit文件夾,放置到opencv-2.4.13/modules/highgui/src下再編譯就通過了。首先,可能他當時成功了,可現在是在OpenCV-3.0.0下,而且這哥們給了個CSDN的下載鏈接,結果廢了我5個積分以後,根本沒有他說的“QTKit文件夾”,真是可笑。後來我找了一個其他人的下載鏈接,花了3分,結果終於有“QTKit文件夾”了,我一看,就是把舊版系統的QTKit.framework裏面headers文件夾裏面的頭文件放到自己建的一個名叫QTKit的文件夾裏面去,然後就上傳了。我明擺這告訴你們,這招行不通,編譯還是不通過!

所以,我也不折騰舊版本了,直接目前最新版3.4.2得了。

我的步驟:

  • 下載3.4.2源代碼zip包,解壓。
  • 沒有homebrew裝一個,太方便了。
  • ffmpeg這個我不確定是不是決勝因素,但是我使用brew install ffmpeg --build-from-source安裝的ffmpeg
  • ant這個也要裝,不然jar包生成不了。brew install ant
  • Doxygen和dot這個我也不確定是不是決勝因素,Doxygen我機子上本來就有,所以需要讀者自己查怎麼安裝,dot的話,使用homebrew:brew install graphviz,graphviz中包含dot
  • cmake和cmake-gui都可以通過homebrew安裝,命令行版本和GUI版本我個人認爲對於3.4.2沒區別,在最新版OpenCV下都可以成功配置
  • 在解壓後的3.4.2中新建一個名爲build的文件夾,我原來看網上教程,建的文件夾叫release,後來我也不折騰了,就老老實實用官方OpenCV編譯建議的,就叫build
  • 進入build文件夾,然後打開cmake-gui,第一個路徑選擇OpenCV源代碼文件夾,第二個選擇剛剛新建的build文件夾,然後點擊generate,彈出窗口的設置也就直接默認的設置(或者命令行在build文件夾中輸入cmake -G "Unix Makefiles" ..後面的兩個點也不能省)
  • cmake成功應該是這個樣子的輸出信息
...
...
  Java:                          
    ant:                         /usr/local/bin/ant (ver 1.10.4)
    JNI:                         /System/Library/Frameworks/JavaVM.framework/Headers /System/Library/Frameworks/JavaVM.framework/Headers /System/Library/Frameworks/JavaVM.framework/Headers
    Java wrappers:               YES
    Java tests:                  YES

...
...

  Install to:                    /usr/local
-----------------------------------------------------------------

Configuring done
Generating done
  • 然後直接build文件夾中make -j16不墨跡
  • make結束後直接sudo make install,簡單明瞭,一步到位

按照我這一套組合拳,很大概率OpenCV-3.4.2就直接成功安裝在你的mac上了。

peace out : )

(Copyright © https://blog.csdn.net/s_gy_zetrov. All Rights Reserved)


visitor tracker
訪客追蹤插件


EOF

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