Visual Studio Code(VSCode) 编辑/编译/调试 C++ 代码

article/2025/10/6 0:44:43

前言

最近想要切换编辑工具,之前工作中使用过 Source Insight,Eclipse,CLion 来写 C++ 代码。目前来说 Source Insight 已经非常古老,只有编写代码还说得过去,编译、调试方面都不行。Eclipse 使用的时间最长,相对来说也比较好用,但是对于 C++11 之后的 C++ 代码实际上支持的并不友好。CLion 是相当棒的编辑工具,但是收费。

相对折中一下 VS Code 是一个比较不错的选择,并且周围很多同事和朋友都在用。本来想在网上找找使用 VS Code 写 C++ 代码的资料,找来找去都非常凌乱,因此在这里我希望自己整理一份使用说明文档。

PC 版本说明

由于我是在 macbook 上安装的,所以这里仅介绍在 macbook 上的使用方法。我的 macbook 版本是12.5

前期准备

安装 brew

我很多工具都是通过 brew 安装的,因此需要在电脑上先安装 brew,关于如何安装 brew 在这里就不做介绍了。安装方法很简单,只是需要等比较长的时间。

安装 VS Code

https://code.visualstudio.com/

在这个地址可以下载最新版本的 VS Code,我下载的压缩包是 VSCode-darwin-universal.zip(我安装的版本是 1.74.3),双击 zip 之后会解压出一个带有 Visual Studio Code 图标的目录,把这个目录剪切到 “应用程序” 就完成安装了。

双击打开 VS Code,看到的是空空如也。

安装插件

安装中文包

在安装 C++ 插件之前可以先安装中文包,对于英文不太熟练的朋友,这个中文包可能会有些帮助。

然后就是使用中文包,使用方法在插件的说明文档中有介绍。

按照描述操作就可以了。设置完语言之后会有提示框要求重启。

安装 C++ 编辑器

C++ 编辑器应该有很多种选择,我还是按照网上查到的文档,安装一个 C++ 编辑器

根据插件的说明,这个插件不包含编译和调试的工具,因此编译和调试工具需要自己安装。macbook 的编译和调试工具我记得是自带的,如果某位朋友电脑上本身没有,那只能找找相应的文档了。

安装 CMake

我参考的文档介绍可以使用 Code Runner 插件,我对这个插件没研究明白。不过在我看来 Code Runner 可能写个代码玩玩还可以,但是真正用在项目上估计比较难。在这里我目前比较推荐使用 CMake 进行编译和调试

在 PC 上安装 CMake

brew install cmake

安装后会在 /opt/homebrew/bin/cmake 目录

然后可以执行一下

cmake --version

如果找不到 cmake 可以尝试执行

/opt/homebrew/bin/cmake --version

如果只能在 /opt/homebrew/bin/cmake --version 执行成功,则需要在 VS Code 中调整一下 CMake 路径,如下图:

在 VS Code 中安装 CMake 插件

编辑、编译和调试代码

建立一个 C++ Demo

我创建的是 demo_c++ 目录,然后在里面建立了 3 个文件。

main.cpp

#include <iostream>
#include "Test.h"int main() {std::cout << "hello, i'm main" << std::endl;Test t;t.print();return 0;
}

Test.h

#ifndef _TEST_H_
#define _TEST_H_
class Test {
public:Test();~Test();void print();
};
#endif

Test.cpp

#include <iostream>
#include "Test.h"Test::Test() {
}
Test::~Test() {
}
void Test::print() {std::cout << "i'm class test" << std::endl;
}

建立 CMakeLists.txt 文件

按照 CMake Tools quick start 的描述,在使用 ⇧⌘P 之后,输入:CMake: Quick Start,然后再输入执行文件的名字,我这里输入的是 demo_c++。

然后选择创建可执行程序,于是会自动创建 CMakeLists.txt,并且会显示如下日志:

PS:在 CMake Tools 里面可以配置 CMake 的一些内容,感兴趣的朋友可以再仔细研究一下。

手工添加 cpp 文件

由于我们的 demo 是两个 cpp 文件,而 CMake 自动创建的 list 仅包含 1 个 cpp,所以额外的 cpp 文件需要手工添加一下,如下图:

用 CMake 编译

在创建了 CMake 之后我们会发现 VS Code 最下面一行会发生变化

通过点击这里的 Build 就可以编译了

点击 build 之后,我们会看到编译出来的可执行文件:demo_c++

用 CMake 运行

点击上图的符号就可以运行,对于 demo 程序会在 terminal 中输出:

hello, i'm main
i'm class test

用 CMake 调试

在代码里随便找一行设置断点,然后点下面的小甲虫。然后就报错了

在这里我点了取消,先看看错误信息是什么

Starting: "/Library/Developer/CommandLineTools/usr/bin/lldb" --interpreter=mi
error: unknown option: --interpreter=mi
Use 'lldb --help' for a complete list of options.
"/Library/Developer/CommandLineTools/usr/bin/lldb" exited with code 1 (0x1).

错误处理

上面的信息是 /Library/Developer/CommandLineTools/usr/bin/lldb 这个命令不支持 --interpreter=mi 这个参数。这里很容易被弹出提示“打开 launch.json” 误导。

这里需要了解的关键点在与 lldb 和 lldb-mi 的差异。在文档中明确描述需要使用 lldb-mi

这里获取到了一个关键路径 ~/.vscode/,以及关键字段 miDebuggerPath

先在 ~/.vscode/ 找到 lldb-mi,我的路径是:

~/.vscode/extensions/ms-vscode.cpptools-1.13.9-darwin-arm64/debugAdapters/lldb-mi/bin/lldb-mi

然后,我们因为是使用 CMake 来调试,而 CMake 并不会加载 launch.json,所以不能在 launch.json 里面做文章。还是要看工具自身的配置,在里面找到了这个。

点一下 Cmake: Debug Config 中的 settings.json,出现了如下图的内容

在这里可以输入 miDebuggerPath 然后保存,我这里的配置如下:

{"cmake.cmakePath": "/opt/homebrew/bin/cmake","cmake.debugConfig": {"miDebuggerPath": "<当前账户绝对路径>/.vscode/extensions/ms-vscode.cpptools-1.13.9-darwin-arm64/debugAdapters/lldb-mi/bin/lldb-mi"}
}

然后再点击小甲虫,就可以正常调试了。

除了点击按钮之外,还可以在调试控制台输入命令调试。(只是输入命令比较麻烦,需要先输入 -exec 再输入其他命令才可以)

参考资料

http://www.360doc.com/content/22/0420/00/277688_1027337827.shtml

https://blog.csdn.net/henry_23/article/details/120998555

https://code.visualstudio.com/docs/cpp/launch-json-reference

https://code.visualstudio.com/docs/cpp/CMake-linux

https://code.visualstudio.com/docs/editor/debugging#_launch-configurations

https://code.visualstudio.com/docs/cpp/lldb-mi

https://code.visualstudio.com/docs/cpp/cpp-debug


http://chatgpt.dhexx.cn/article/ciKPFaJf.shtml

相关文章

你是真的“C”——Visual Studio 2022(VS2022)编译器 -—实用调试技巧

你是真的“C”——Visual Studio 2022&#xff08;VS2022&#xff09;编译器 -—实用调试技巧&#x1f60e; 前言&#x1f64c;1. 什么是bug&#xff1f;&#x1f64c;2. 调试是什么&#xff1f;有多重要&#xff1f;&#x1f64c;2.1 调试是什么&#xff1f;2.2 调试的基本步骤…

c/c++ ------visualstudio编译器的使用

一个编译器而已 visualstudio是一个编译器而已(简称vs) 可视化的代码编译器&#xff1b;可视化的代码编辑器&#xff1b;方便的代码调试器&#xff1b;做好了windows操作系统拥有的库文件接口&#xff1b; 养成一个好的习惯&#xff1a; 编译目录&#xff1b;源码目录&#xff…

VS编译器的简单操作

目录 c语言的百度定义​ vs编译器的简单使用 第一个代码 什么是main函数 当运行结果一闪而过怎么办 c语言的百度定义 vs编译器的简单使用 要写一个代码首先要创建一个新项目&#xff0c;点击创建一个新项目&#xff0c;然后就有这样一个画面 语言选择c&#xff0c;选择空项目…

编译器的差别gcc和VS

问题的由来是我写了一个排序算法程序&#xff0c;在gcc编译器下运行&#xff0c;发现结果有问题&#xff0c;然后开展的寻找错误解决问题 这是我写的一个简单的插入排序算法 #include <stdio.h>//直接插入法排序函数主体 //参数1&#xff1a;待排序的序列 //参数2&…

Visual Studio编译器使用总结

经历过各种坑。安装坑&#xff0c;使用坑&#xff0c;配置坑。 今天抽空把总结写一下。 下面例子为vs2015举例。 大部分公司因为时间的问题&#xff0c;基本项目都是从vs2015版本进行开发的。后续为了统一&#xff0c;也建议大家用vs2015创建工程。 一、安装篇 vs2017-19版本…

c语言的编译器vs2019的安装及简单实用

1.编译器的介绍与安装 刚开始学习c语言呢&#xff0c;少不了的就是对语言编辑和编译。简单来说&#xff0c;我们就是需要一个编译器来编辑和运行你的代码。 那么有什么好的编译器值得推荐呢&#xff1f;那就有很多了。但是比较广泛使用的编译器有Clang、GCC、MSVC、devc。这里我…

VS编译器常见的问题

VS编译器常见的问题 前言问题一——VS2013控制台一闪而过解决方法1解决方法2 问题二——scanf函数报错解决方法 问题三——新建多个源文件引起的报错解决方法1解决方法2 前言 我们在开始学习C语言时&#xff0c;会遇到各种编译器&#xff0c;VS&#xff0c;Dev-C&#xff0c;V…

linux如何对mysql进行定时备份并定时清理3天之前的备份数据

linux如何对mysql进行定时备份并定时清理3天之前的备份数据 一.Linux对mysql进行定时备份 1.确保Linux上是否已经安装了mysql以及crontab 安装mysql可参考:https://blog.csdn.net/m0_51285952/article/details/123371653 安装crontab可参考:https://blog.csdn.net/hukai0q/…

docker定时备份mysql-定时备份docker中mysql的数据

一、概念 方法一&#xff1a;备份是通过如下命令实现 docker exec -it mysql&#xff08;镜像号&#xff09; mysqldump -h$mysql_host -P$mysql_port -u$mysql_user -p$mysql_password -B test1&#xff08;数据库名称&#xff09;&#xff08;中间是有一个空格的&#xff0…

Windows系统下如何定时备份MySQL数据库

Windows系统下如何定时备份MySQL数据库 使用mysqldump备份sql文件 假设mysql环境 MySQL安装位置 D:\mysql\mysql-5.7.30-winx64需要备份的数据库名称 springMySQL数据库账号 rootMySQL数据库密码 123456数据库备份地址 D:/mysqlBackup/ 则脚本按照下面写法&#xff1a; echo of…

mysql设置定时备份

不管是什么类型的数据库&#xff0c;我们都需要定时的备份&#xff0c;以便在出问题时可以及时恢复&#xff0c;减少损失。sqlserver的备份很简单&#xff0c;sqlserver自带&#xff0c;这里主要给大家分享下mysql的自动备份如何设置。 1.工具&#xff1a;navicat2.数据库:mys…

【数据库】定时备份mysql数据库

目录 一、创建放备份的目录二、编写脚本三、创建软链接四、赋予该脚本可执行权限五、测试脚本是否能正常执行六、进入备份文件夹查看是否正常备份七、安装cron服务八、创建定时备份任务 一、创建放备份的目录 cd / 进入根目录 mkdir backup 创建备份…

Mysql数据库每天定时备份

1.先检查安装crontabs yum install crontabs 2.在home目录下指定路径新建文件夹 3.新建执行脚本,在里面写入命令 touch mysql_backup.sh shell脚本如下&#xff1a; #!/bin/bash #保存备份个数&#xff0c;备份14天数据 number14 #备份保存路径 backup_dir/home/tjgeo/bac…

Mysql定时备份

linux下如何实现mysql数据库每天定时自动备份 由于客户要求&#xff0c;需要将数据库进行每天定时自动备份&#xff0c;所以网上找了各种方式就行了测试&#xff0c;遇到很多坑&#xff0c;特此记录下来&#xff0c;步骤是东拼西凑的&#xff0c;虽然也是网上找的&#xff0c;…

Windows下 mysql定时备份

** 使用mysqldump进行数据库备份 ** mysql数据库自带备份命令mysqldump,可对数据库进行备份操作 最简单的备份是将数据库备份至本地&#xff0c;生成 **.sql文件 编写备份脚本文件 &#xff08;创建一个txt文件&#xff0c;写入批处理脚本&#xff0c;再将文件的后缀改为.ba…

MySQL定时备份数据库(全库备份)

MySQL定时备份数据库&#xff08;全库备份&#xff09; 一、MySQL数据备份 1.1、 mysqldump命令备份数据 在MySQL中提供了命令行导出数据库数据以及文件的一种方便的工具mysqldump,我们可以通过命令行直接实现数据库内容的导出dump,首先我们简单了解一下mysqldump命令用法: …

mysql定时自动备份数据库

我们都知道数据是无价&#xff0c;如果不对数据进行备份&#xff0c;相当是让数据在裸跑&#xff0c;一旦服务器出问题&#xff0c;只有哭的份了。下面将介绍mysql数据库的自动备份&#xff0c;大家可根据情况自行选择将备份数据存放在哪里。 第一种&#xff0c;数据跑在服务器…

windows系统mysql定时备份

一.介绍 本文章主要介绍了windows系统下如何创建mysql定时备份任务&#xff0c;目的&#xff1a;一是数据无价&#xff0c;一旦数据丢失&#xff0c;功亏一篑&#xff1b;而是将重复性的工作交给机器来做&#xff0c;省去人工处理成本。 二.创建bat任务脚本 1.新建txt文档 2.打…

MySQL 定时备份数据库(非常全)

一. mysqldump命令备份数据 在MySQL中提供了命令行导出数据库数据以及文件的一种方便的工具mysqldump,我们可以通过命令行直接实现数据库内容的导出dump,首先我们简单了解一下mysqldump命令用法: #MySQLdump常用 mysqldump -u root -p --databases 数据库1 数据库2 > xxx.s…

实战-MySQL定时增量备份(2)

阅读本文大约需要 9 分钟 实战-MySQL定时全量备份&#xff08;1&#xff09; 实战-MySQL定时增量备份&#xff08;2&#xff09; 实战-将MySQL备份上传到私有云(3) 概要 引言 增量备份 恢复增量备份 定时备份 引言 在产品上线之后&#xff0c;我们的数据是相当重要的&…