首先到opencv官网下载opencv源码
解压至指定文件夹,如:/Users/hanchengxiao/Desktop/opencv
在opencv文件夹下建立build文件夹,并在build文件夹中执行cmake
cmake -DBUILD_SHARED_LIBS=OFF
(注意这里cmake -DBUILD_SHARED_LIBS=OFF 官网的解释如下)
https://docs.opencv.org/4.4.0/d9/d52/tutorial_java_dev_intro.html
这样编译出来的libopencv_java的so库文件有20多MB
但是在cmake这一步执行了很多遍不断提示目录不存在
尝试了不少百度的方法均不起效,包括在opencv还是build文件夹执行,指定cmake目录等等
一气之下,直接将根目录CMakeLists.txt文件中的所有${CMAKE_BINARY_DIR}变量直接替换为了我的build文件夹目录(/Users/hanchengxiao/Desktop/opencv/build)
再次在opencv文件夹执行cmake,执行成功
方法可能算不上多好,但是如果遇到同样的问题,可以尝试这么解决,能解决问题就是好方法!
现在执行make&&make install
在这一步再次卡住,提示opencv_lapack头文件不存在
报错信息如下
hal_internal.cpp:51:10: fatal error: 'opencv_lapack.h' file not found
解决办法倒是简单,将opencv文件夹中的opencv_lapack.h复制到opencv/modules/core/src即可
类似的错误可能还有
datafile.cpp:7:10: fatal error: 'opencv_data_config.hpp' file not found
ts.cpp:109:10: fatal error: 'opencv_tests_config.hpp' file not found
将opencv文件夹下的
opencv_data_config.hpp移动到opencv/modules/core/src/utils
opencv_tests_config.hpp移动到opencv/modules/ts/src即可
其余的错误倒是没有遇到,加下来很顺利的执行make&&make install