一.背景
由于java项目在部分功能实现过程中使用了opencv库,现需要将window开发环境上的程序打包到linux生产环境上部署,服务器需要事先编译安装opencv,生成共享库(opencv-java4.5.3.so)及jar文件,以实现部署在linux下的java程序调用opencv。
二.依赖关系
本人在opencv编译过程中使用的opencv以及依赖库依赖关系如下,其中版本可根据需要自行调整,可能部分依赖库在本次编译之前已经安装,该部分未在下列图中体现:

三.依赖安装
1.cmake-3.21.2
(1)cmake压缩文件下载
https://cmake.org/download/
(2)文件解压
tar -zxvf cmake-3.21.2.tar.gz
cd cmake-3.21.2(3)环境检查及配置
./bootstrap
此过程中遇到如下错误:
CMake Error at Utilities/cmcurl/CMakeLists.txt:525 (message):
Could not find OpenSSL. Install an OpenSSL development package or
configure CMake with -DCMAKE_USE_OPENSSL=OFF to build without OpenSSL.

解决:安装openssl
yum install openssl openssl-devel(4)编译
gmake(5)安装
sudo make install(6)查看版本
cmake -version
2.jdk
jdk安装配置参考以下文章:
https://mp.csdn.net/mp_blog/creation/editor/1197755943.ant
(1)压缩文件下载
https://ant.apache.org/bindownload.cgi
(2)解压
tar -zxvf apache-ant-1.9.16-bin.tar.gz(3)配置环境变量
编辑profile配置文件
sudo vim /etc/profile在文件末尾增加以下配置:
export ANT_HOME=/usr/apache-ant-1.9.2
export PATH=$PATH:$ANT_HOME/bin配置立即生效:
source /etc/profile(4)查看版本
ant -version四.编译安装opencv
1.解压opencv压缩包并进入解压目录
tar -zxvf opencv-4.5.3.tar.gz
cd opencv-4.5.32.在解压目录下新建文件夹build并进入
mkdir build
cd build2.进入build,执行以下命令:
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local/opencv4.5.3 ..参数说明:
CMAKE_BUILD_TYPE:This statically specifies what build type (configuration) will be built in this build tree. Possible values are empty, Debug, Release, RelWithDebInfo, MinSizeRel, ...
CMAKE_INSTALL_PREFIX:安装目录
3.build目录下使用如下命令编译opencv
make -j4其中j4参数是指定使用4个线程执行编译任务
4.build目录下使用如下命令安装opencv
sudo make install
至此,opencv4.5.3版本在cenos7下的编译安装已经完成,进入CMAKE_INSTALL_PREFIX参数指定的安装目录下,进入/share/java/opencv4,如果生成如下两个文件,则编译安装成功:
![]()
生成的.so文件在java中与window下的dll文件加载方法相同
生成的jar文件与windows下生成的jar文件是一样的
