CMake的-S和-H选项有什么区别?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CMake的-S和-H选项有什么区别?相关的知识,希望对你有一定的参考价值。

我搜索了很长一段时间来改变CMake的构建目录而没有使用cding。

我最终找到了-H选项并用它制作我的脚本。现在我输入cmake --help,我直接看到以下输出:

$ cmake --help
Usage

  cmake [options] <path-to-source>
  cmake [options] <path-to-existing-build>
  cmake [options] -S <path-to-source> -B <path-to-build>

我最近使用:

$ cmake --version
cmake version 3.14.0

CMake suite maintained and supported by Kitware (kitware.com/cmake).

而且我认为在旧版本中这个缺失了。

不过,我想知道-H-S选项之间是否有任何区别。此外,我想知道它们是否可以安全使用。我在其他帖子中发现了这个问题,但尚未得到解答(例如:How to tell CMake where to put build files?

答案

-H选项没有记录,并且在-S选项之前存在很久。在-S选项存在之前,它被认为是一种“技巧”。 -H选项purpouse是为了让开发人员生活更轻松,但他们将其留在发布版本中,因此人们开始使用它。自从cmake 3.13(我认为它是Novemeber 2018)以来,-S选项可用,使-H过时(或不?我不知道cmake开发人员的意图是什么)。

看到cmake sources-H-S选项行为完全相同。

以上是关于CMake的-S和-H选项有什么区别?的主要内容,如果未能解决你的问题,请参考以下文章

这两个代码片段有啥区别?

cmake的缓存变量可以用于cpp源码中吗

片段和活动之间没有传递值

这两个代码片段之间有区别吗?如果有,那又如何? [复制]

片段和活动之间的核心区别是啥?哪些代码可以写成片段?

字符串插值和片段之间有啥显着区别吗?