OpenCV CMake 构建配置选项详细参考
介绍
注意:我们假设您已经阅读了相关教程或具有使用 CMake 的经验。
可以通过几种不同的方式设置配置选项:
- 命令行:
cmake -Doption=value ... - 初始缓存文件:
cmake -C my_options.txt ... - 通过 GUI 进行交互(如 ccmake 或 cmake-gui)
在本参考中,我们将主要使用常规命令行方式。
大多数选项都可以在 OpenCV 的根 CMake 脚本中找到(opencv/CMakeLists.txt)。某些选项可以在特定模块中定义。可以使用 CMake 工具打印所有可用选项:
# 初始配置
cmake ../opencv
# 打印所有选项
cmake -L
# 打印所有选项,并附上帮助消息
cmake -LH
# 打印所有选项,包括高级选项
cmake -LA
最受欢迎和最有用的是以 WITH_、ENABLE_、BUILD_、OPENCV_ 开头的选项。
默认值因平台和其他选项值而异。
常规选项
使用额外的模块进行构建
OPENCV_EXTRA_MODULES_PATH 选项包含一个以分号分隔的目录列表,其中包含将添加到构建中的额外模块。模块目录必须具有兼容的布局和 CMakeLists.txt。
示例:
# 使用 opencv_contrib 中的所有模块进行构建
cmake -DOPENCV_EXTRA_MODULES_PATH=../opencv_contrib/modules ../opencv
# 使用 opencv_contrib 模块之一进行构建
cmake -DOPENCV_EXTRA_MODULES_PATH=../opencv_contrib/modules/bgsegm ../opencv
# 使用两个自定义模块构建(在 bash 中必须转义分号)
cmake -DOPENCV_EXTRA_MODULES_PATH=../my_mod1;../my_mod2 ../opencv
注意: 仅支持 0 级和 1 级深层模块位置,以下命令将引发错误:
cmake -DOPENCV_EXTRA_MODULES_PATH=../opencv_contrib ../opencv
调试生成
CMAKE_BUILD_TYPE 选项可用于启用调试构建;生成的二进制文件将包含调试符号,并且大多数编译器优化将被关闭。若要在发布版本中启用调试符号,请打开该选项 BUILD_WITH_DEBUG_INFO。
在某些平台(例如 Linux)上,必须在配置阶段设置构建类型:
cmake -DCMAKE_BUILD_TYPE=Debug ../opencv
cmake --build .
在其他平台上,可以在同一个生成目录(例如 Visual Studio、XCode)中生成不同类型的生成:
cmake <选项> ../opencv
cmake --build . --config Debug
如果您使用 GNU libstdc++(GCC 的默认值),您可以打开 ENABLE_GNU_STL_DEBUG 选项,然后 C++ 库将在调试模式下使用,例如在向量元素访问期间将绑定检查索引。


