linux平台交叉编译opencv库,关闭不需要的模块 加速编译

编译全流程

  1. 下载源码

  2. 解压

tar xvf opencv-4.5.4.tar.gz
cd opencv-4.5.4
  1. 交叉编译
//此处是配置交叉编译工具链路径
export COMPILE_PREFIX=/opt/rk3308h32
export CC=${COMPILE_PREFIX}/bin/arm-buildroot-linux-gnueabihf-gcc
export CXX=${COMPILE_PREFIX}/bin/arm-buildroot-linux-gnueabihf-g++

mkdir build
cd build

//此处我配置了静态编译
//另外关闭了一些不需要的模块。
//这里需要注意,有些模块你打开了,可是如果它依赖的模块被关闭了,也是会被设置为关闭的,详情看后面
cmake .. \
-D CMAKE_BUILD_TYPE=RELEASE \
-D BUILD_opencv_gpu=OFF  \
-D BUILD_DOCS=OFF \
-D BUILD_PERF_TESTS=OFF \
-D BUILD_TESTS=OFF \
-D BUILD_WITH_DEBUG_INFO=OFF \
-D BUILD_opencv_apps=OFF \
-D BUILD_opencv_highgui=OFF \
-D BUILD_opencv_imgcodecs=OFF \
-D BUILD_opencv_calib3d=ON \
-D BUILD_opencv_contrib=OFF \
-D BUILD_opencv_dnn=OFF \
-D BUILD_opencv_gapi=OFF \
-D BUILD_opencv_features2d=ON \
-D BUILD_opencv_flann=ON \
-D BUILD_opencv_gpu=OFF \
-D BUILD_opencv_ml=OFF \
-D BUILD_opencv_nonfree=OFF \
-D BUILD_opencv_objdetect=OFF \
-D BUILD_opencv_photo=OFF \
-D BUILD_opencv_stitching=OFF \
-D BUILD_opencv_superres=OFF \
-D BUILD_opencv_ts=OFF \
-D BUILD_opencv_video=OFF \
-D BUILD_opencv_videoio=OFF \
-D BUILD_opencv_videostab=OFF \
-DBUILD_SHARED_LIBS=OFF \
-DCMAKE_INSTALL_PREFIX=`pwd`/output \
-DCMAKE_SYSTEM_NAME=Linux \
-DCMAKE_SYSTEM_PROCESSOR=arm \
-DCMAKE_C_COMPILER=$CC \
-DCMAKE_CXX_COMPILER=$CXX

//开始编译
make -j8
make install

关于模块编译开关

例如我关闭了其它模块,打开了BUILD_opencv_calib3d。执行上面命令后打印会显示如下,说明calib3d由于依赖关系还是被关闭了


--   OpenCV modules:
--     To be built:                 core imgproc
--     Disabled:                    dnn features2d flann gapi highgui imgcodecs ml objdetect photo stitching video videoio world
--     Disabled by dependency:      calib3d

我们可以进入opencv-4.5.4/modules/calib3d/CMakeLists.txt看看

ocv_define_module(calib3d opencv_imgproc opencv_features2d opencv_flann ${debug_modules}
    WRAP java objc python js
)

这里说明了calib3d依赖这些模块,所以我们需要打开opencv_imgproc opencv_features2d opencv_flann才能编译calib3d。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值