# 在 opencv 源码文件夹下创建并进入 build 文件夹
cd /home/usr/opencv-4.7.0 # 请切换为你的 opencv 源码路径
mkdir build && cd build
cmake -DOPENCV_EXTRA_MODULES_PATH=/home/usr/opencv_contrib-4.x/modules/aruco -DBUILD_opencv_legacy=OFF /home/usr/opencv-4.7.0
make install
其中 -DOPENCV_EXTRA_MODULES_PATH
参数用于指定具体opencv_contrib库路径。如果需要安装多个指定 opencv_contrib 库,则用双引号和分号来提供多个 opencv_contrib 库路径,如:
cmake -DOPENCV_EXTRA_MODULES_PATH="/home/usr/opencv_contrib-4.x/modules/xfeatures2d;/home/usr/opencv_contrib-4.x/modules/aruco" -DBUILD_opencv_legacy=OFF /home/usr/opencv-4.7.0
实测发现对于 opencv-3.2.0
直接使用 -DOPENCV_EXTRA_MODULES_PATH=""
来指定编译一部分额外子模块的话,会报错:
No extra modules found in folder: XXX
需要用 -DOPENCV_EXTRA_MODULES_PATH=""
指定整个 opencv_contrib
的目录,然后使用 -DBUILD_opencv_
来关闭不需要的额外子模块的编译,就是比较麻烦,例如:
cmake -DOPENCV_EXTRA_MODULES_PATH="/home/usr/opencv_contrib-3.2.0/modules" -DBUILD_opencv_legacy=OFF -DBUILD_opencv_aruco=OFF -DBUILD_opencv_dnn=OFF /home/usr/opencv-3.2.0
记录 opencv-3.2.0 在 gcc-7 下编译不报错的命令
cmake -DENABLE_PRECOMPILED_HEADERS=OFF ..