1、编译流程
- 从官网下载源码。opencv.org/releases/
- 在服务器解压并进入文件夹opencv-4.7.0。unzip opencv-4.7.0.zip
- 在该文件夹下创建build文件夹并进入。 mkdir build && cd build
- 执行cmake命令
cmake -D CMAKE_INSTALL_PREFIX=/usr/local -D CMAKE_BUILD_TYPE=Release -D OPENCV_GENERATE_PKGCONFIG=ON -D OPENCV_ENABLE_NONFREE=True -D JAVA_GENERATE_NATIVE_WRAPPERS=ON -D JAVA_HOME="/usr/lib/jvm/openjdk-17.0.2" -D BUILD_opencv_java=ON -D WITH_ANT=ON -D ANT_EXECUTABLE="/userdata/apache-ant-1.10.15/bin/ant" ..
5. 编译。make -j${nproc} 6. 构建。make install
2、可能存在的问题
- JNI找不到
先看全局变量有没有设置JAVA_HOME,还不行就cmake指定JAVA_HOME地址
- ant找不到
这个我遇到的ANT_EXECUTABLE没识别到,指定ant的路径,就有了
- 编译了一次之后,如果其他统一配置的服务器要使用应该怎么办?
把build文件夹先整个拷贝过去(或者干脆整个opencv-4.7.0文件夹),然后配置LD_LIBRARY_PATH环境变量,指向拷贝过来的opencv库
export LD_LIBRARY_PATH=/userdata/opencv-4.7.0/build/lib:$LD_LIBRARY_PATH
接着执行ldconfig来更新链接器缓存,确保链接器能找到所有库
- java应用启动时需要指定opencv路径:
java -jar -Djava.library.path=/userdata/opencv-4.7.0/build/lib demo.jar