成为CMake砖家(5): VSCode CMake Tools 插件基本使用

大家好,我是白鱼。

之前提到过,白鱼的主力 编辑器/IDE 是 VSCode, 也提到过使用 CMake Language Support 搭配 dotnet 执行 CMakeLists.txt 语法高亮。 对于阅读 CMakeLists.txt 脚本, 这足够了。

而在 C/C++ 开发过程中, 还需要编译代码, 或者说, ”构建完整的 C/C++ 工程“。 基于 CMake 的构建,包括 configure,build, run 这三个阶段。 在命令行中,它们对应了不同的 cmake 命令和参数。 而在 VSCode 中, 使用 CMake Tools 插件也可以完成这些事情。

1. 准备

首先安装 CMake Tools 插件
在这里插入图片描述

其次, 准备 C/C++ 代码和 CMakeLists.txt。我的是:

cmake_minimum_required(VERSION 3.5)
project(hello)
set(CMAKE_CXX_STANDARD 17)
add_executable(hello hello.cpp)

C++ 代码也很简单: hello.cpp 内容

#include <stdio.h>

int main()
{
    printf("hello world!");

    return 0;
}

2. CMake Configure

进入命令面板, 输入 “CMake: Configure” 并执行:
在这里插入图片描述

这里假定你和白鱼一样,已经选择好了 Kit, 也就是编译器, 白鱼选择的是 VS2022。 那么可以看到 cmake configure 的输出:

在这里插入图片描述

3. CMake: Build

现在来到关键一步: 执行真正的 C/C++ 代码编译。

进入命令面板输出 “CMake: Build”:

在这里插入图片描述
也可以鼠标点击 vscode 下方的 build, 一键触发 configure + build, 懒人福音:
在这里插入图片描述

4. CMake: Run Without Debugging

接下来是运行。 进入命令面板输入 “CMake: Run Without Debugging”:

在这里插入图片描述
可以看到输出:

在这里插入图片描述
你也可以鼠标点击 VSCode 底部状态栏的三角形按钮, 它是 CMake Tools 插件提供的”运行“:

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/803515.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

完美的用户体验:如何设计一个直观和有效的网站导航?

APP的顶部导航栏对我们来说很熟悉。导航栏是UI设计中不可或缺的一部分&#xff0c;几乎每个页面都使用导航栏。虽然导航栏看起来很简单&#xff0c;不需要太多精力&#xff0c;但是设计一个与产品需求和客户目标高度匹配的导航栏并不是那么容易的。导航栏的设计标准有很多细节需…

qt 创建一个左侧边线拖拽的矩形

1.概要 2.代码 2.1 代码第一版 在Qt中&#xff0c;要创建一个可以向左侧拖拽边线的矩形&#xff0c;你需要自定义一个QGraphicsRectItem的子类&#xff0c;并重写其事件处理函数来响应鼠标的拖拽动作。以下是一个简单的实现示例&#xff1a; #include <QApplication>…

Python酷库之旅-第三方库Pandas(028)

目录 一、用法精讲 71、pandas.tseries.api.guess_datetime_format函数 71-1、语法 71-2、参数 71-3、功能 71-4、返回值 71-5、说明 71-6、用法 71-6-1、数据准备 71-6-2、代码示例 71-6-3、结果输出 72、pandas.util.hash_array函数 72-1、语法 72-2、参数 72…

快速排序及归并排序的实现与排序的稳定性

目录 快速排序 一. 快速排序递归的实现方法 1. 左右指针法 步骤思路 为什么要让end先走&#xff1f; 2. 挖坑法 步骤思路 3. 前后指针法 步骤思路 二. 快速排序的时间和空间复杂度 1. 时间复杂度 2. 空间复杂度 三. 快速排序的优化方法 1. 三数取中优化 2. 小区…

昇思25天学习打卡营第13天|munger85

文本解码原理–以MindNLP为例 重要的就是怎么样把数字最后转化成真正的文字。而且自回归模型它会一个字给一个字的预测&#xff0c;下一个字应该是什么&#xff1f; 如果这个模型下载很慢&#xff0c;你就可以通过这种方式从摩大社区进行下载。 这种方式&#xff0c; 每一次候…

AI+文娱,人工智能助力文娱行业智能化之路!

近些年来&#xff0c;我国文化产业领域对于人工智能等高新科技愈发重视&#xff0c;呈现出文化和科技深度有机融合的发展态势。科技与文化碰撞带来的火花&#xff0c;让我们对历史的表达有了更多可能。这既是高新技术的具体应用和不断落地&#xff0c;也是提升文化产品数字化、…

MFC CRectTracker 类用法详解

CRectTracker 类并非 Microsoft Foundation Class (MFC) 库中应用很广泛的一个类&#xff0c;一般教科书中很少有提到。在编程中如果需编写选择框绘制以及选择框大小调整、移动等程序时&#xff0c;用CRectTracker 类就会做到事半而功倍。下面详细介绍MFC CRectTracker 类。 M…

小熊猫C++与Dev-C++:两款C++开发环境的对比

引言 在C编程的世界中&#xff0c;选择合适的开发环境是至关重要的。今天&#xff0c;我们将对比两款流行的C开发工具&#xff1a;小熊猫C和Dev-C。这两款软件各有特色&#xff0c;适合不同的编程需求和偏好。本文将从多个方面对它们进行详细的比较&#xff0c;帮助开发者做出…

如何追查一个packet在linux 系统哪里丢失

要想追一个包在系统哪里丢失了&#xff0c; 就要了解 一个应用层的包在送出时 要经历那些 检查点 和被丢掉的点。 1. 在传输层&#xff0c;如果是 tcp 包 会有contrack 的 buf 的限制 可能会导致 packets 的丢失。 > 检查办法&#xff1a;查看dmesg日志有报错&#xff1a;k…

输入网址到网页显示的过程

输入网址到网页显示的过程 1. 浏览器解析 URL2. 域名解析解析的流程 3. TCP通过三次握手建立连接4. 生成TCP段&#xff1a;在数据的前面加上 TCP 头部&#xff0c;生成TCP段TCP 头部 5. 生成IP数据报&#xff1a;在TCP段的前面加上 IP包头&#xff0c;生成IP数据报IP包头 6. 在…

【时时三省】tessy 集成测试:小白入门指导手册

目录 1,创建集成测试模块且分析源文件 2,设置测试环境 3,TIE界面设置相关函数 4,SCE界面增加用例 5,编辑数据 6,用例所对应的测试函数序列 7,添加 work task 函数 8,为测试场景添加函数 9,为函数赋值 10,编辑时间序列的数值 11,执行用例 12,其他注意事项…

EXCEL VBA工程密码破解 工作表保护破解

这里写目录标题 破解Excel宏工程加密方法一 新建破解宏文件方法二 修改二进制文件 破解工作表保护引用 破解Excel宏工程加密 如图所示 白料数据处理已工程被加密。 方法一 新建破解宏文件 1 创建一个XLSM文件&#xff0c;查看代码 ALTF11 2 新建一个模块&#xff0c;“插…

35.UART(通用异步收发传输器)-RS232(2)

&#xff08;1&#xff09;RS232接收模块visio框图&#xff1a; &#xff08;2&#xff09;接收模块Verilog代码编写: /* 常见波特率&#xff1a; 4800、9600、14400、115200 在系统时钟为50MHz时&#xff0c;对应计数为&#xff1a; (1/4800) * 10^9 /20 -1 10416 …

基于springboot+vue+uniapp的超市购物系统小程序

开发语言&#xff1a;Java框架&#xff1a;springbootuniappJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#…

云监控(华为) | 实训学习day1(10)

云监控&#xff1a;确保服务器高效运行 在当今的数字化时代&#xff0c;服务器的稳定运行对于任何企业都至关重要。为了确保服务器的 CPU、内存和硬盘等资源的合理运行&#xff0c;云监控成为了一项不可或缺的技术。本文将详细介绍云监控的基本概念、所需软件、配置方法以及如何…

git 操纵分支和标签

我们只需要知道 每一个分支都是独立的进行的&#xff0c;假如 我们在 我们再git 上传代码时候&#xff0c;假如 master主分支 提交到第五次了&#xff0c;但是突然发现 第三次提交的代码有bug&#xff0c;我们可以 新创建一个分支&#xff0c;然后回退到第三次提交之后的代码&a…

NDK R25b 交叉编译FFMpeg4,项目集成,附库下载地址

1.准备工作 文件下载&#xff1a; NDK R25b下载地址&#xff1a;Android NDK历史版本下载网址 - 君*邪 - 博客园 (cnblogs.com) FFmpeg4.4.4 下载地址&#xff1a;https://ffmpeg.org/releases/ffmpeg-4.4.4.tar.xz 环境配置&#xff1a; 本次编译环境是在PC虚拟机中使用U…

算法 —— 快速幂

目录 P1045 [NOIP2003 普及组] 麦森数 P1226 【模板】快速幂 原理I 原理II P1226 代码解析 P1045 代码解析 P1045 [NOIP2003 普及组] 麦森数 本题来自洛谷&#xff1a;P1045 [NOIP2003 普及组] 麦森数&#xff0c;根据题意&#xff0c;我们可以看到本题需要计算最少2的1…

【Git】(基础篇二)—— Git操作

Git操作 在了解git理论知识之后&#xff0c;本文将结合实践操作为你讲解git的底层逻辑 Git的安装和配置 git官网下载&#xff1a;https://git-scm.com/ 下载后安装时除了选择安装地址外&#xff0c;其余都保持默认下一步即可。 安装好后鼠标右键会出现两个新的选项【Open …

【TDA4板端部署】 TIDL 简介

TIDL 用于加速 TI 嵌入式设备上的深度神经网络 (DNN)。 它支持 TI 的最新一代处理器 TI Jacinto7 TDA4 处理器。 TDA4 处理器属于 TI Jacinto7 家族的处理器&#xff0c;基于异构、可扩展的架构开发&#xff0c;此架构包含了 TI 数字信号处理 C7x DSP 和 C66x DSP、Cortex A72、…