使用CMake生成OpenCV库时的步骤说明

Clarification of steps while generating of OpenCV libraries using CMake

本文关键字:说明 CMake 生成 OpenCV 使用      更新时间:2023-10-16

我已经使用在线教程使用CMake生成了几次OpenCV库,尽管我没有完全理解这个过程。以下是我遵循的过程

  1. 配置CMake以构建OpenCV二进制文件(例如,使用QT、TBB、不使用CUDA、OpenCL等)
  2. 使用CMake生成二进制文件
  3. 构建二进制文件的文件夹中有许多.sln文件。我打开文件OpenCV.sln,并为Debug和Release配置运行项目ALL_BUILD
  4. 创建了一个新文件夹。bin,其中包含库(用于发布和调试版本的.lib.dll
  5. (可选)有时我也会构建名为INSTALL的项目(在同一个解决方案中),只是出于好奇。我注意到它创建了另一个文件夹,其中包含的库文件与OpenCV包附带的预构建库的模式几乎相同。有趣的是,如果我链接到install文件夹或bin/lib文件夹中的库,我在MSVC或Qt中的程序也同样有效

我的问题是

  1. install溶液的作用是什么
  2. install解决方案生成的库与binlib文件夹中的库有何不同
  3. 构建ALL_BUILD解决方案时为什么未构建install解决方案
  1. install解决方案的功能是什么

它将构建输出打包/收集到一组可移植的库和中,您知道这些库和头可以在您的电脑或其他机器中移动。

  1. install解决方案生成的库与binlib文件夹中的库有何不同

它们不是。您可能首先构建了共享库,然后(通过使用cmake重新配置)构建了静态库,但目标安装只安装您当前选择的库(在您的cmake gui中?)

  1. 为什么在生成ALL_BUILD解决方案时未生成install解决方案

install是cmake的一个特殊目标。事实上,默认情况下,install触发all,并且只有在all成功终止时才实际执行,但反之亦然。