【发布时间】:2015-09-14 10:46:35
【问题描述】:
This answer 以前关于 CMake 的问题显示此命令行:
cmake -H. -Bbuild -G "MSYS Makefiles"
-H. 选项在这里执行什么任务? cmake --help 说 -H 打印帮助...
我正在使用 CMake 3.2.3。
【问题讨论】:
标签: cmake
This answer 以前关于 CMake 的问题显示此命令行:
cmake -H. -Bbuild -G "MSYS Makefiles"
-H. 选项在这里执行什么任务? cmake --help 说 -H 打印帮助...
我正在使用 CMake 3.2.3。
【问题讨论】:
标签: cmake
正如链接答案中提到的,它是一个未记录的选项,但查看源代码会发现它的效果:
if(arg.find("-H",0) == 0)
{
directoriesSet = true;
std::string path = arg.substr(2);
path = cmSystemTools::CollapseFullPath(path);
cmSystemTools::ConvertToUnixSlashes(path);
this->SetHomeDirectory(path);
最后一次调用,SetHomeDirectory 实际上设置了项目的源目录。 -B 选项(也未记录)依次设置二进制目录。
如果未设置这些选项,二进制目录将是执行 cmake 的当前文件夹,源目录可以作为位置参数给出(如果未找到,源文件夹也将是当前工作目录) .
【讨论】:
cmake version 3.13.4,其中-H 别名为--help 人说--help,-help,-usage,-h,-H,/? Print usage information and exit.
-H 和-S 有什么区别? - 设置项目“Home”似乎比仅仅设置源位置可以处理更多的边缘情况......编辑:根据下面的答案,看起来它们只是相同的选项,并且-S正在替换@987654334 @。 - 这根本不直观 IMO。但是,很高兴有人指出!
The Hitchhiker’s Guide to the CMake 解释了 CMake 3.13 选项中的旧版和新版:
【讨论】: