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。

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-06-15 06:54:01       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-06-15 06:54:01       106 阅读
  3. 在Django里面运行非项目文件

    2024-06-15 06:54:01       87 阅读
  4. Python语言-面向对象

    2024-06-15 06:54:01       96 阅读

热门阅读

  1. 人工智能中的哲学

    2024-06-15 06:54:01       31 阅读
  2. 安装xFormers时遇到的问题,以及正确的安装方式

    2024-06-15 06:54:01       24 阅读
  3. 8个常用的辅助函数!!

    2024-06-15 06:54:01       25 阅读
  4. Cargo

    2024-06-15 06:54:01       33 阅读
  5. Docker从容器打包镜像到本地保存与加载

    2024-06-15 06:54:01       27 阅读
  6. TensorFlow编程环境:构建深度学习的乐园

    2024-06-15 06:54:01       26 阅读
  7. 计算机网络(6) ICMP协议

    2024-06-15 06:54:01       24 阅读