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 
  #include 
#else

修改为

#ifdef 1
  #define HAVE_FFMPEG_SWSCALE 1
  #include 
  #include 
#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

你可能感兴趣的:(教程,使用中的排错与软件贴士,使用技巧等)