前言:在使用go对接百度人脸识别离线sdk的时候,由于我们项目使用的是gocv0.35.0版本,对应的opencv4.8,编译了opencv4.8在对接过程中会遇到传入Mat后C发生内存溢出,直接崩溃了,后面怎么折腾代码都没用,于是怀疑是不是编译的opencv4.8和sdk中自带的4.1版本冲突了,于是有如下编译opencv4.1的过程,编译过程中遇到的问题,都在下方描述了!
环境:Ubuntu22.04.5 arm64架构
1.删除安装的文件(如有安装过)
sudo rm -rf /usr/local/include/opencv*
sudo rm -rf /usr/local/include/opencv2
sudo rm -rf /usr/local/lib/libopencv*
sudo rm -rf /usr/local/share/opencv
2.下载opencv4.1+opencv_contrib4.1源码
git clone --depth 1 -b 4.1.0 https://github.com/opencv/opencv.git
git clone --depth 1 -b 4.1.0 https://github.com/opencv/opencv_contrib.git
3.进入carotene目录修改CMakeLists.txt文件
cd opencv/3rdparty/carotene && sudo vim CMakeLists.txt
4.将找到的 --param ipcp-unit-growth=100000 修改为 --param ipa-cp-unit-growth=100000
输入 i 进行编辑
编辑完输入 ESC 再输入 :wq 回车
5.进入hal目录修改CMakeLists.txt文件
cd hal && sudo vim CMakeLists.txt
6.将找到的所有 --param ipcp-unit-growth=100000 修改为 --param ipa-cp-unit-growth=100000
输入 i 进行编辑
编辑完输入 ESC 再输入 :wq 回车
7.进入src目录修改parallel.cpp文件
cd ../../../modules/core/src && sudo vim parallel.cpp
8.将找到的 #include "tbb/tbb_stddef.h" 修改为 #include "oneapi/tbb/version.h"
输入 i 进行编辑
编辑完输入 ESC 再输入 :wq 回车
9.返回到opencv目录
cd ../../../
10.创建并进入build目录
mkdir build && cd build
11.生成cmake文件(按需修改参数)
sudo cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules -D OPENCV_GENERATE_PKGCONFIG=ON -D BUILD_opencv_java=OFF -D BUILD_opencv_python3=ON -D WITH_OPENMP=OFF -D WITH_GSTREAMER_0_10=OFF -D WITH_VTK=OFF -D WITH_LIBV4L=ON -D WITH_V4L=ON -D WITH_OPENMP=ON -D WITH_OPENGL=ON -D WITH_TBB=ON -D BUILD_SHARED_LIBS=ON -D ENABLE_PIC=ON -D WITH_ARITH_DEC=ON -D WITH_ARITH_ENC=ON -D WITH_FFMPEG=ON -D WITH_GSTREAMER=ON -D WITH_IMGCODEC_HDR=ON -D WITH_IMGCODEC_PXM=ON -D WITH_IMGCODEC_SUNRASTER=ON -D WITH_JASPER=ON -D WITH_JPEG=ON -D WITH_LAPACK=ON -D WITH_PNG=ON -D WITH_QT=OFF -D WITH_PTHREADS_PF=ON -D WITH_TIFF=ON -D WITH_WEBP=ON -D WITH_GTK=ON -D WITH_OPENCL=ON -D BUILD_opencv_world=ON -D WITH_PNG=ON -D BUILD_PNG=OFF -D PNG_LIBRARY=/usr/lib/aarch64-linux-gnu/libpng.so -D PNG_PNG_INCLUDE_DIR=/usr/include -D OPENCV_FORCE_3RDPARTY_BUILD=OFF -D BUILD_opencv_img_hash=ON ..
12.编译
sudo make -j8 #8根据cpu线程数来
13.安装
sudo make install
14.更新动态链接库
sudo ldconfig
香橙派编译OpenCV4.1教程
2217

被折叠的 条评论
为什么被折叠?



