赞
踩
最近还是比较了解这些CMake语句,所以就拿着opencv以及opencv_contrib两个库的源码进行了编译,顺便拿老师的代码分析了一波,了解一下深层次的原理和相关的变量。
换行操作的原理就是可以省去在每一行前面重复编写cmake -DXXX
rm build -rf
mkdir build
cmake -S . -B build
cmake -DOPENCV_EXTRA_MODULES_PATH="/home/lincong/Desktop/opencv_contrib/modules" -DBUILD_opencv_wechat_qrcode=OFF build \
-DCMAKE_PREFIX_PATH=$CONDA_PREFIX \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_SYSROOT=$CONDA_PREFIX/$HOST/sysroot
mkdir build
cmake -S . -B build
cmake -DOPENCV_EXTRA_MODULES_PATH="/home/lincong/Desktop/opencv_contrib/modules" -DBUILD_opencv_wechat_qrcode=OFF build ^
-DCMAKE_PREFIX_PATH=$CONDA_PREFIX ^
-DCMAKE_BUILD_TYPE=Release ^
-DCMAKE_SYSROOT=$CONDA_PREFIX/$HOST/sysroot
由分号分隔的目录列表,指定要由安装程序搜索的安装 前缀find_package(), find_program(), find_library(), find_file(), 和 find_path()命令。每个命令将添加相应的子目录(例如bin,lib或include),作为其自己的文档中指定。
默认情况下为空。它打算由项目设置。
实际上,官方文档说了这么多,就是指定find_package这些函数的搜索前缀,相对来说搜寻就比较快。这里的$CONDA_PREFIX就是我的miniconda所在路径,显示为/home/minconda
之前根据我自己的Qt5进行编译确实碰到了不少麻烦,而且不知道-DBUILD_opencv_xxx是干嘛的,但其实Readme文档确实给了很详细的说明。
命令行仿照如下,这里需要说明一点的是你需要将BUILD_opencv_world选项设置为ON,默认是不会勾选的。
之所以勾选其实很大一部分原因就是不勾选直接编译点击 Generate 的话还是会生成很多独立的依赖库,在调用添加时不是很方便,所以我建议还是直接使用Anaconda库进行opencv的管理,至于那个Anaconda仓库里面是否有opencv_contrib还需要进一步探究,这里我也不是真正想要用这个库,只是根据这一个个代码编译的实践锻炼自己编译代码的能力以及CMake的使用方法。
rm build -rf
mkdir build
cmake -S . -B build
cmake -DOPENCV_EXTRA_MODULES_PATH="/home/lincong/Desktop/opencv_contrib/modules" -DBUILD_opencv_wechat_qrcode=OFF build \
-DCMAKE_PREFIX_PATH=$CONDA_PREFIX \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_SYSROOT=$CONDA_PREFIX/$HOST/sysroot \
-DBUILD_opencv_world=ON
最后编译结果如下(微信二维码的模块并没有编译)
确定好对应的生成目录和源文件目录之后点击configure出现下面的情况。
这里会出现一些变量名的方式,都是一些编译的可选项,所以这里就回到前面几章讲述的,cmake-gui还是非常有必要的,可以直接帮我们把需要进行配置的选项以可视化的方式显示出来而不是自己去那一堆.cmake结尾的文件中查找option,然后再根据对应的option使用命令行的方式进行关闭或者开启。所以这个cmake工具还是非常方便的,显示option是它很友好的一个方面,通过我们进行勾选的方式进行set(-DXXXX OFF)和set(-DXXXX ON)的方式进行操纵。
这里提醒一点,你还是编译这些源码的时候进行勾选opencv_world选项。
优化之后的configure.sh代码
rm build -rf
mkdir build
cmake -S . -B build
cmake -DOPENCV_EXTRA_MODULES_PATH="/home/lincong/Desktop/opencv_contrib/modules" -DBUILD_opencv_wechat_qrcode=OFF build \
-DCMAKE_PREFIX_PATH=$CONDA_PREFIX \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_SYSROOT=$CONDA_PREFIX/$HOST/sysroot \
-DBUILD_opencv_world=ON \
-DBUILD_openv_python_tests=OFF \
-DBUILD_opencv_java_bindings_generator=OFF \
-DBUILD_opencv_js_bindings_generator=OFF \
-DBUILD_DOCS=ON \
-DOPENCV_DNN_CUDA=ON \
-DWITH_QT=ON \
-DWITH_CUDA=ON
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。