CMake工具中--build与-B选项的区别是什么?
CMake中
--build与-B选项的区别 先看官方帮助文档的定义:
-B
= 显式指定构建目录。
--build= 构建由CMake生成的项目二进制树。
核心区别分点说
-B是配置阶段的参数
它的作用是指定构建目录的路径,让CMake在这个目录下生成构建系统需要的文件(比如Makefile、Ninja脚本、VS工程文件这些)。简单说就是帮你完成项目的「初始化配置」,把源码转换成构建工具能读懂的结构。
举个实际用法:cmake -B ./my_build,这条命令会在当前目录下创建my_build文件夹,然后在里面生成所有构建需要的配置文件。--build是构建阶段的参数
它的作用是直接调用底层构建工具(比如make、ninja)去编译项目,前提是目标目录已经通过CMake完成了配置(也就是里面已经有生成好的构建系统文件)。相当于替你进入构建目录,执行编译命令。
举个实际用法:cmake --build ./my_build,这条命令会去./my_build目录下执行编译,最终生成可执行文件或者库文件。
一句话总结两者关系
-B负责搭好构建的「架子」,--build负责用这个「架子」把代码编译成产物。你可以先跑cmake -B ./build完成配置,再跑cmake --build ./build开始编译;要是直接跑--build,目标目录必须是已经配置好的,不然会报错。
内容的提问来源于stack exchange,提问作者KostasA
相关产品推荐
相关产品推荐

