当前位置: 首页 > news >正文

vscode+cmake高阶使用

文章目录

    • 一、cmake的基本设置
    • 二、使用预设文件对cmake的命令进行控制

关于vscode安装cmake的扩展以及构建一个简单的C++工程,网络上已经有很多教程了。这里不再叙述。本篇博客旨在记录一些高级的使用方法。

一、cmake的基本设置

打开vscode中camke Tools的相关设置在这里插入图片描述

  • 勾选Cmake: Allow Comments In Presets File 和Cmake: Allow Unsupported Presets Versions,是cmake支持通过配置CMakePrestes.json来配置编译选项。这个功能不一定会用,但是可以提前打开。
  • 可以将这里设置为visible,从而让vscode的地步状态栏显示更多cmake配置相关的内容在这里插入图片描述

二、使用预设文件对cmake的命令进行控制

普通的vscode+cmake的使用方法,在使用vscode状态栏的按钮进行cmake构建的时候,使用的是默认的命令,能够更改的参数也只有编译器,target等等。如果想要添加额外的参数,需要在task.json里和settings.json里进行配置,这种方式跨平台性很差,而且此时无法再使用vscode状态栏的按钮,因为在task.json里和settings.json里进行配置是vscode的特性,而不是cmake Tools插件的特性,此时状态栏的按钮仍然为默认的cmake指令。接下来是具体的配置方式

  1. 勾选Cmake: Allow Comments In Presets File 和Cmake: Allow Unsupported Presets Versions以后,重启vscode,下方状态栏会变成这样子在这里插入图片描述
  2. 配置settings.json
{"C_Cpp.default.configurationProvider": "ms-vscode.cmake-tools", //如果没有这一行, IntelliSense总是会默认使用debug,无视CMakePresets.json"cmake.useCMakePresets": "always", // 强制使用CMakePresets.json"cmake.buildDirectory": "${workspaceFolder}/build", // 默认构建目录(会被预设覆盖)"cmake.configureOnOpen": true
}
  1. 配置CMakePrests.json
{"version": 8,"configurePresets": [{"name": "linux-debug","displayName": "Linux Debug","binaryDir": "${sourceDir}/build","generator": "Ninja","cacheVariables": {"CMAKE_BUILD_TYPE": "Debug","CMAKE_EXPORT_COMPILE_COMMANDS": "ON"}}],"buildPresets": [{"name": "linux-debug","configurePreset": "linux-debug","configuration": "Debug"}]
}

配置完CMakePrests.json以后,可以通过下方的状态栏控制cmake执行什么样的命令。
关于CMakePrests.json的便利之处与其他高级功能,可以参考https://cloud.tencent.com/developer/article/2348379。

相关文章:

  • SimVG论文精读
  • php基础
  • Nacos自动刷新配置源码解析
  • Ubuntu22.04新版本谷歌无法使用搜狗输入法/中文不显示
  • 组织级项目管理OPM
  • Spark 集群搭建:Standalone 模式详解
  • 天梯赛补题
  • Kafka 详解
  • Qt creator 16.0.1 语言家失效解决方法
  • 使用 VSCode 编写 Markdown 文件
  • Vscode已经打开的python项目,如何使用已经建立的虚拟环境
  • 局部最小实验--用最小成本确保方向正确
  • 信息学奥赛一本通 1505:【例 2】双调路径 | 洛谷 P5530 [BalticOI 2002] 双调路径
  • 03-谷粒商城笔记
  • MongoDB(docker版)备份还原
  • 八大排序——选择排序/堆排序
  • Android APP 爬虫操作
  • 海外产能达产,威尔高一季度营收利润双双大增
  • 【k8s】docker、k8s、虚拟机的区别以及使用场景
  • shell脚本1
  • 哲学家的生命终章:一场关于存在与消逝的深度对话
  • 嫦娥八号任务合作项目,这十个入选
  • “家门口的图书馆”有多好?上海静安区居民给出答案
  • 2025年一季度上海市国民经济运行情况
  • 全国双拥模范城(县)名单
  • 外交部答澎湃:愿同阿曼在国际和地区事务中加强沟通协调