使用Cmake输出库信息

Using Cmake to output library informations

本文关键字:信息 输出 Cmake 使用      更新时间:2023-10-16

你好,我知道我可以使用cmake的GUI通过简单的命令输出库的信息:

FIND_PACKAGE( OpenCV REQUIRED )
MESSAGE("${OpenCV_DIR}")
MESSAGE("${OpenCV_LIBS}")

我想在dos命令提示符下使用这些命令。但我真的不知道如何在命令提示符下使用cmake工具。也许这里有人知道怎么做这样的事情。

编辑

好吧,你提出的解决方案是对的,但正如我所见,我没有很好地解释我想要什么。我真的很想在不使用CMakeLists.txt文件的情况下获得MESSAGE("${OpenCV_DIR}")的结果。

编辑2

好的,我已经找到了我现在搜索的内容!我想在windows上使用cmake进行pkg配置功能。Cmake提供了这个功能,这里展示了如何做到这一点:

http://blogs.kde.org/2011/11/09/cool-new-stuff-cmake-286-2-pkg-config-compatible-mode-added-use-eg-autotools

对于我的opencv搜索,我尝试了这个,它成功了:

cmake --find-package -DNAME=OpenCV -DCOMPILER_ID=GNU -DLANGUAGE=C -DMODE=COMPILE

现在还不知道如何使用visualstudio更改gnu,但这是可以的。谢谢大家。

假设CMake已通过可在CMake.org网站上下载的安装文件正确安装,则包含cmake.exe可执行文件的目录应位于PATH中。

因此,您可以执行以下操作(我假设DOS知识很少):

  1. 打开命令提示符
  2. 键入cd C:thedirectorywheretobuild(替换为构建目录所在的位置,我假设它就在CMakeLists.txt所在的目录下面)
  3. 如有必要,可通过键入C:D:或项目所在的任何驱动器来更改当前驱动器
  4. 键入cmake ..,通过指定包含CMakeLists.txt文件的父目录的相对路径作为参数来调用cmake命令行可执行文件

您应该在命令提示符窗口中看到所有预期的输出。

CMake建议使用源代码外构建,这意味着,正如您在CMake GUI中看到的,源目录和构建目录应该而不是相同
这有两个好处:

  • 您可以使用不同的构建配置(调试、发布、静态或动态链接等)将多个构建目录关联到一个源树
  • CMake生成的文件不会意外添加到源代码控制系统中

在CMakeLists.txt所在的文件夹中启动cmake就足够了,如下所示:

cmake .