澄清使用 CMake 生成 OpenCV 库时的步骤
Clarification of steps while generating of OpenCV libraries using CMake
我使用在线教程使用 CMake 生成了 OpenCV 库几次,尽管没有完全理解这个过程。这是我遵循的过程
- 配置 CMake 以构建 OpenCV 二进制文件(例如,使用 QT、TBB,不使用 CUDA、OpenCL 等)
- 使用 CMake 生成二进制文件
- 生成二进制文件的文件夹有许多
.sln
个文件。我为调试和发布配置打开文件 OpenCV.sln
和 运行 项目 ALL_BUILD
。
- 创建了一个新文件夹。
bin
其中包含用于发布和调试版本的库(.lib
和 .dll
。
- (可选)有时出于好奇,我还构建了名为
INSTALL
的项目(在同一解决方案中)。我注意到它创建了另一个文件夹,其中包含与 OpenCV 包附带的预构建库几乎相同模式的库文件。有趣的是,如果我 link 使用 install
文件夹或 bin
/lib
文件夹中的库,我的 MSVC 或 Qt 程序同样运行良好。
我的问题是
install
解决方案的功能是什么?
install
解决方案生成的库与 bin
和 lib
文件夹中的库有何不同?
- 为什么构建
ALL_BUILD
方案时没有构建install
方案
- What is the function of the
install
solution?
它 packages/collects 构建输出到一组可移植的库和 headers,你知道你可以在你的 pc 中移动,或者到另一台机器。
- How are the libraries generated by the
install
solution different from the ones found in the bin
and lib
folders?
他们不是。您可能首先构建了共享库,然后(通过使用 cmake 重新配置)静态库,但是目标安装只安装了您当前选择的库(在您的 cmake-gui 中?)
- Why is the
install
solution not built when the ALL_BUILD
solution is built
install
是 cmake 的特殊目标。事实上,默认情况下 install
触发 all
并且仅在 all
成功终止时才真正执行,但反之亦然。
我使用在线教程使用 CMake 生成了 OpenCV 库几次,尽管没有完全理解这个过程。这是我遵循的过程
- 配置 CMake 以构建 OpenCV 二进制文件(例如,使用 QT、TBB,不使用 CUDA、OpenCL 等)
- 使用 CMake 生成二进制文件
- 生成二进制文件的文件夹有许多
.sln
个文件。我为调试和发布配置打开文件OpenCV.sln
和 运行 项目ALL_BUILD
。 - 创建了一个新文件夹。
bin
其中包含用于发布和调试版本的库(.lib
和.dll
。 - (可选)有时出于好奇,我还构建了名为
INSTALL
的项目(在同一解决方案中)。我注意到它创建了另一个文件夹,其中包含与 OpenCV 包附带的预构建库几乎相同模式的库文件。有趣的是,如果我 link 使用install
文件夹或bin
/lib
文件夹中的库,我的 MSVC 或 Qt 程序同样运行良好。
我的问题是
install
解决方案的功能是什么?install
解决方案生成的库与bin
和lib
文件夹中的库有何不同?- 为什么构建
ALL_BUILD
方案时没有构建install
方案
- What is the function of the
install
solution?
它 packages/collects 构建输出到一组可移植的库和 headers,你知道你可以在你的 pc 中移动,或者到另一台机器。
- How are the libraries generated by the
install
solution different from the ones found in thebin
andlib
folders?
他们不是。您可能首先构建了共享库,然后(通过使用 cmake 重新配置)静态库,但是目标安装只安装了您当前选择的库(在您的 cmake-gui 中?)
- Why is the
install
solution not built when theALL_BUILD
solution is built
install
是 cmake 的特殊目标。事实上,默认情况下 install
触发 all
并且仅在 all
成功终止时才真正执行,但反之亦然。