build
build
cmake编译核心
两个核心步骤
对底层构建工具缺乏认知的VS小白有个说法叫 "VS巨婴" (不是我说的),意思就是离开了VS,或者没有那个运行按钮就不知道干啥了 (我以前也是哈)
- 通用:两个步骤:
- 配置阶段
- 构建阶段
- 运行阶段
- 命令行:对应的就是以下两条主命令:(只是一般还会附上许多命令选项)
cmake ..
cmake --build .
- CLion:
- 你点击CMake的重新加载按钮就是配置阶段 (运行前也会自动运行这一部分)
- 点击运行按钮就是构建阶段
- VSCode:也同理。你安装好插件后:
- 在
CMakeLists.txt
文件上Ctrl+S保存也会自动触发CMake部分 (运行前也会自动运行这一部分) - 点击运行按钮就是构建阶段
- 在
可以看到,不同的软件本质上都是相同的。使用cmake时,运行都是执行这两条命令 (不算运行编译结果那条)
智能选项
不同的是,IDE可以帮你自动附加许多命令选项,比较方便。实例见 ../../../03. 管理层/03. 多项目管理/03. 库或包管理/BackEnd/Cpp包管理工具Vcpkg#CppCMakeVcpkgTemplate。而这些配置哪来的呢?
- CMakeLists.txt,并不存储这些信息
- 各种软件自身的解决方案,可以存储这些。如CLion的
.idea
、VS的.vs
或.sln
、VSCode 的.vscode/task.json
- 例如 CLion
设置 > 构建、执行、部署 > CMake > CMake options
处理配置阶段的选项 - 例如 CLion
右上角运行按钮下拉框 > 编辑配置 > Target、程序实参等
处理编译阶段、运行阶段的选项
- 例如 CLion
CMakePreset.json
。这是一种比较新和通用的解决方案。主要作用于构建阶段的配置- VSCode的CMake插件使用、CLion也能识别 (但好像识别不全? 识别不全的话要自己配一下)
- 主要的C ++ IDE应该已经支持CMakePresets.json,并且不需要特定的配置
链接到当前文件 0
没有文件链接到当前文件