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

前言

最近想要切换编辑工具,之前工作中使用过 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://www.rhkb.cn/news/13625.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

chatgpt职场办公-excel表格怎么设置类别编号

chatgpt职场办公-excel表格怎么设置类别编号 作者&#xff1a;虚坏叔叔 博客&#xff1a;https://xuhss.com 早餐店不会开到晚上&#xff0c;想吃的人早就来了&#xff01;&#x1f604; 在 Excel 表格中设置类别编号可以通过以下步骤完成&#xff1a; 打开 Excel 表格并定位…

ChatGPT爆火:AI崛起,这些职场人的机遇到了?

ChatGPT最近真的被全球吃瓜群众玩坏了&#xff01; 回答情感问题&#xff0c;编写代码&#xff0c;撰写slogan或脚本&#xff0c;甚至还被用于毕业生论文…… 这个连马斯克都由衷地称赞的ChatGPT&#xff0c;是一种全新的聊天机器人模型。上线2个月&#xff0c;就拥有了上亿活…

chatgpt赋能python:Python如何做报表

Python如何做报表 Python是一种广泛使用的编程语言&#xff0c;特别适合数据处理和报表生成。在本文中&#xff0c;我们将探讨使用Python创建报告的一些最佳实践&#xff0c;以及一些工具和库来充实您的报告。 报表格式选择 在创建报告之前&#xff0c;您需要决定选择哪种报…

用chatGPT写一个ALV报表,采用多种方式实现

序言 2015年12月&#xff0c;OpenAI公司于美国旧金山成立。OpenAI最初成立旨在实现DeepMind 和Google无法做到的一切。它将作为一个非营利组织运营&#xff0c;致力于使先进人工智能的好处民主化&#xff0c;并承诺发布其研究成果&#xff0c;并开源其所有技术。 具体来说&am…

防范网络钓鱼仍然很重要!

在众多网络攻击中&#xff0c;网络钓鱼可以说是攻击者最喜欢使用的攻击手段之一。据《2022年数据泄露成本报告》显示&#xff0c;网络钓鱼已成为数据泄露的第二大方式&#xff0c;占比达16%&#xff0c;给受访组织造成高达491万美元的泄露成本。 钓鱼者可以攻击任何在线服务中的…

硅谷老钱和中国巨头,AI并购潮的同行不同命

文丨姚悦、郝鑫 ChatGPT拉开了AI新一轮创投热潮&#xff0c;但在中国和硅谷却呈现出“冰火两重天”。 在国内&#xff0c;刚获融资的大模型初创企业光年之外&#xff0c;因创始人王慧文身体抱恙&#xff0c;被紧急1元接盘&#xff1b;另一边&#xff0c;国外一天就诞生了三起…

关于腾讯云服务器 外网不能访问的问题

买腾讯云的服务器已经又快一年了&#xff0c;以前总是把自己做的javaweb项目放上去访问 做自己的博客 但是在年初的时候重装了一次服务器上的系统 &#xff0c;之后通过外网就访问不进去&#xff0c;自己在网上各种的配置tomcat 和系统文件 开放了服务器的80防火墙 但是最终还…

复旦大学开源对话语言模型MOSS部署笔记

1, 硬件要求 1.1 硬盘,100G以上,代码模型数据约50G, 我第一次部署的时候在虚拟机上,存储不足各种问题. 1.2 高性能计算显卡A100/A800,网上搜了一下超过8w块钱,暂时没这资源 1.3 内存, github上有这样描述:可在单张A100/A800或CPU运行&#xff0c;使用FP16精度时约占用30GB显…

人工智能和传统行业的思考

人工智能和传统行业的思考 GPT3/4/联网对话——Midjoureny免费体验&#xff1a;aihello.pro 转载&#xff1a;原文链接 — https://xiaowenz.com/blog/2023/04/decouple-your-time/ 传统之传统 传统产业之所以被称为传统&#xff0c;除了大部分并非依靠计算机技术驱动之外&…

GPT-4 和ChatGPT API的定价分析

OpenAI发布了他们的ChatGPT新机器学习模型GPT-4。GPT-4是GPT-3的一大进步&#xff0c;GPT-3是当前ChatGPT免费版本(GPT 3.5 Turbo)所运行的模型的基础&#xff0c;今天我们也来凑个热点&#xff0c;研究一下它们的定价 GPT-4新的功能 GPT-4可以在对话中使用图像&#xff0c;并…

chatGPT很火?不如自己动手开发聊天机器人,融合Attention基于Seq2Seq的chatRobot开发实践

最近经常打开手机十个新闻里面至少有三个都是有关于chatGPT的&#xff0c;感觉好像很火的样子&#xff0c;其实这个本质上就是一个高度智能的聊天机器人&#xff0c;据说使用了包括2021年之前所有的数据去训练&#xff0c;加上后期不断地反馈优化上线后用户激增对他来说也是一个…

百度Q1财报超预期:广告业务强势反弹,智能云业务实现盈利

5月16日&#xff0c;百度发布了截至2023年3月31日的第一季度未经审计的财务报告。第一季度&#xff0c;百度实现营收311亿元&#xff0c;同比增长10%&#xff1b;归属百度的净利润&#xff08;non-GAAP&#xff09;达到57亿元&#xff0c;同比大幅增长48%&#xff0c;营收和利润…

百度发布2023年Q1财报:营收311亿元,净利润大幅增长48%

北京时间5月16日&#xff0c;百度&#xff08;NASDAQ&#xff1a;BIDU&#xff0c;HKEX&#xff1a;9888&#xff09;发布了截至2023年3月31日的第一季度未经审计的财务报告。第一季度&#xff0c;百度实现营收311亿元&#xff0c;同比增长10%&#xff1b;归属百度的净利润&…

百度季报图解:营收311亿 智能云收入42亿,实现季度盈利

雷递网 雷建平 5月16日 百度集团股份有限公司&#xff08;纳斯达克&#xff1a;BIDU及香港联交所&#xff1a;9888&#xff0c;简称&#xff1a;百度&#xff09;今天公布财报。财报显示&#xff0c;百度2023年第一季营收311亿&#xff0c;同比增长10%&#xff1b;归属百度的净…

易观千帆 | Q1运营报告:手机银行MAU超5.3亿,行业“内卷”超出想象

易观&#xff1a;由中国电子银行网、易观分析联合发布的“2023中国手机银行综合运营报告”显示&#xff1a;在经济企稳回升的大背景下&#xff0c;中国手机银行第一季度综合运营指数季度内呈平稳上升态势&#xff0c;手机银行活跃人数环比增幅逐月递增&#xff0c;促使活跃用户…

普通人如何用AI帮你干活——娱乐1

案例描述&#xff1a; 一天朋友突然发信息跟我说&#xff1a;看你朋友全最近总在显摆AI作画&#xff0c;看起来好像有点牛逼&#xff1b;我家小朋友最近在参加一个国家绘画比赛&#xff0c;能不能让你的AI帮忙画几张有趣的有创意的画。给小朋友做灵感启发&#xff0c;小朋友可以…

chatgpt赋能python:Python如何创建窗口——从入门到精通

Python如何创建窗口——从入门到精通 Python是一种高级编程语言&#xff0c;它的易读性和清晰简洁的语法使它成为许多人喜欢学习的编程语言之一。Python的一个主要特色是其丰富的库和模块。在本文中&#xff0c;我们将讨论如何使用Python创建一个窗口&#xff0c;并在其中添加…

Docker-compose

一个项目可以由多个服务&#xff08;容器&#xff09;关联而成&#xff0c;Compose面向项目进行管理。 同时启动多容器环境并且解决容器之间依赖关系一、docker-compose安装部署 GitHub_docker-compose版本 docker-compose官方指导 环境&#xff1a;docker已安装&#xff0c;…

用宝塔面板Docker安装ChatGPT-pandora项目,直接内置token教程

本机以阿里云 轻量云服务器为例。 首先在轻量云服务器后台的防火墙放行端口3002。 然后登陆宝塔&#xff0c;点击Docker&#xff0c;提示没有安装的话&#xff0c;请安装Docker。 然后再点击Compose模板&#xff0c;写入&#xff1a; version: 3services:app:image: pengzhile…

一键免费部署你的私人 ChatGPT 网页应用

一键免费部署你的私人 ChatGPT 网页应用 容器部署 &#xff08;推荐&#xff09; Docker 版本需要在 20 及其以上&#xff0c;否则会提示找不到镜像。 ⚠️注意&#xff1a;docker 版本在大多数时间都会落后最新的版本 1 到 2 天&#xff0c;所以部署后会持续出现“存在更新”…