VS Code C++ 开发环境配置

VS Code 是当前非常流行的开发工具. 本文讲述如何配置 VS Code 作为 C++开发环境. 本文将按照如下步骤来介绍如何配置 VS Code 作为 C++开发环境.

  1. 安装编译器
  2. 安装插件
  3. 配置工作区

第一个步骤的具体操作会因为系统不同或者方案不同而有不同的选择.

环境要求

首先需要立即 VS Code 主要的功能是编辑器, 它并没有编译器能力. 因此我们要想 VS Code 作为 C++开发环境, 我们需要安装好编译器.

  1. VS Code. 如果没有请去官网下载并安装.
  2. C++ 编译器. 根据系统的不同, 可以选择不同的编译器. 读者请根据自己所用系统选择对应的编译器.

Windows 下安装 C++编译器

Windows 下有很多选择, 简单来说有如下选择:

  • 使用原生的编译器: Microsoft Visual Studio. Visual Studio 本身就是一款 IDE, 但是相比起 VS Code 来说, 软件体积很大.
  • 如果是 Windows 11 使用 WSL 来安装 C++编译器. Windows 10 应该也可以, 但是我本地环境是 Windows 11, 所以这里只介绍 Windows 11.
  • 如果本地有 Docker, 则可以用 dev container 方案. 有多个语言开发环境, 或者有多个编译器版本的用户可以考虑使用 dev container 方案. 可以参考我的这篇文章: VS Code Dev Containers 教程: 从基础到进阶配置

Linux 下安装 C++编译器

Linux 下可以使用 gcc, clang. 通过系统的包管理器来安装.

  • 对于 Ubuntu 来说, 可以使用如下命令来安装:

    • gcc: sudo apt install gcc
    • clang: sudo apt install clang
  • 对于 CentOS 来说, 可以使用如下命令来安装:

    • gcc: sudo yum install gcc
    • clang: sudo yum install clang

MacOS 下安装 C++编译器

对于 MacOS 来说, 如果有 Homebrew, 可以使用如下命令来安装:

brew install clang

安装插件

我们主要需要安装如下插件C/C++ Extension Pack.

它是一个扩展包, 包含了 C/C++ 的所有功能. 包括:

  • C/C++
  • C/C++ Themes
  • CMake Tools

配置工作区

我们使用 CMake 来配置我们的项目. 这里我使用一个示例项目来演示如何配置工作区.

这个项目使用 CMake 来构建, 并且使用 CMakePreset.json 来配置工作区. 如果对这两个工具不熟悉, 请参考我的文章: CMake 教程: 从基础到进阶配置

操作步骤如下:

  1. clone 项目:

    git clone https://gitee.com/aronic/cmake-project-2024.git
    
  2. 用 VS Code 打开项目.

  3. 选择 CMake Preset: 按下shift + cmd + p, 输入 CMake: Select a CMake Preset, 选择对应的 preset. 目前只有两个, 分别针对 Linux 和 Windows.

    select preset

  4. 运行构建: 按下shift + cmd + p, 输出CMake: Build, 运行构建.

    cmake build

    构建结果:

    build result

  5. 运行测试: 按下shift + cmd + p, 输出CMake: Run Test, 运行测试.

    run test

    测试结果:

    run test result

上述操作在底层状态栏也可以操作.

status bar

至此, 我们已经完成了 C++开发环境的搭建.

相关帖子

  • CMake 入门教程: 从基础到实践
  • Windows 11 CLion C++ Dev Container开发环境配置
  • Vcpkg 使用全攻略: 支持 VS Code, Visual Studio 和 CLion
  • Dockerfile for C++ Dev Containers

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

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

相关文章

html-表格标签

一、表格标签 1. 表格的主要作用 表格主要用于显示、展示数据,因为它可以让数据显示的非常的规整,可读性非常好。特别是后台展示数据 的时候,能够熟练运用表格就显得很重要。一个清爽简约的表格能够把繁杂的数据表现得很有条理。 总…

ROS2-话题学习

强烈推荐教程: 《ROS 2机器人开发从入门到实践》3.2.2订阅小说并合成语音_哔哩哔哩_bilibili 构建功能包 # create package demo_python_pkg ros2 pkg create --build-type ament_python --license Apache-2.0 demo_python_pkg 自己写的代码放在./demo_python_pkg/…

Java在小米SU7 Ultra汽车中的技术赋能

目录 一、智能驾驶“大脑”与实时数据 场景一:海量数据的分布式计算 场景二:实时决策的毫秒级响应 场景三:弹性扩展与容错机制 技术隐喻: 二、车载信息系统(IVI)的交互 场景一:Android Automo…

Oracle RAC配置原理详解:构建高可用与高性能的数据库集群

在现代企业级应用中,数据库的高可用性和高性能是至关重要的。Oracle Real Application Clusters(RAC)是Oracle数据库提供的一种集群解决方案,能够将多个数据库实例部署在不同的服务器上,实现负载均衡和故障切换&#x…

ESP8266TCP客户端(单连接TCP Client)

单连接TCP Client 电脑作为服务器,8266作为客户端 1.配置WiFi模式 ATCWMODE3 //softAPstation mode 相应:ok 2.连接路由器 ATCWJAP“SSID”,“password” //SSID就是wifi的名字, password WIFI密码 响应&#xff…

【Linux】软硬连接与动静态库

🔥个人主页:Quitecoder 🔥专栏:linux笔记仓 目录 01.软硬连接02.动静态库静态库(Static Library)动态库(Dynamic Library) 03.动态库加载 01.软硬连接 我们先看一下它的用法 这个是…

关于Springboot 应配置外移和Maven个性化打包一些做法

期望达到的效果是每次更新服务器端应用只需要更新主程序jar 依赖jar单独分离。配置文件独立存放于文件夹内,更新程序并不会覆盖已有的配置信息。 一、配置外移 1、开发环境外移 做法:在项目同级或者上级创建config文件夹放置配置文件,具体m…

阿里云操作系统控制台——解决服务器磁盘I/O故障

目录 引言 需求介绍 操作系统使用实例 获得的帮助与提升 建议 引言 你的云服务器是否遇到过系统响应变慢、服务超时,或者进程卡顿、磁盘空间不足、系统日志频繁告警的问题?这些情况在日常运维中并不少见,尤其是在 高负载或资源紧张时&a…

【英伟达AI论文】多模态大型语言模型的高效长视频理解

摘要:近年来,基于视频的多模态大型语言模型(Video-LLMs)通过将视频处理为图像帧序列,显著提升了视频理解能力。然而,许多现有方法在视觉主干网络中独立处理各帧,缺乏显式的时序建模,…

蓝桥杯备考:图论初解

1:图的定义 我们学了线性表和树的结构,那什么是图呢? 线性表是一个串一个是一对一的结构 树是一对多的,每个结点可以有多个孩子,但只能有一个父亲 而我们今天学的图!就是多对多的结构了 V表示的是图的顶点集…

记录小白使用 Cursor 开发第一个微信小程序(一):注册账号及下载工具(250308)

文章目录 记录小白使用 Cursor 开发第一个微信小程序(一):注册账号及下载工具(250308)一、微信小程序注册摘要1.1 注册流程要点 二、小程序发布流程三、下载工具 记录小白使用 Cursor 开发第一个微信小程序&#xff08…

【Linux学习笔记】Linux基本指令分析和权限的概念

【Linux学习笔记】Linux基本指令分析和权限的概念 🔥个人主页:大白的编程日记 🔥专栏:Linux学习笔记 文章目录 【Linux学习笔记】Linux基本指令分析和权限的概念前言一. 指令的分析1.1 alias 指令1.2 grep 指令1.3 zip/unzip 指…

【消息队列】数据库的数据管理

1. 数据库的选择 对于当前实现消息队列这样的一个中间件来说,具体要使用哪个数据库,是需要稍作考虑的,如果直接使用 MySQL 数据库也是能实现正常的功能,但是 MySQL 也是一个客户端服务器程序,也就意味着如果想在其他服…

【HarmonyOS Next】鸿蒙加固方案调研和分析

【HarmonyOS Next】鸿蒙加固方案调研和分析 一、前言 根据鸿蒙应用的上架流程,本地构建app文件后,上架到AGC平台,平台会进行解析。根据鸿蒙系统的特殊设置,仿照IOS的生态闭环方案。只能从AGC应用市场下载app进行安装。这样的流程…

nuxt2 打包优化使用“compression-webpack-plugin”插件

在使用 Nuxt.js 构建项目时,为了提高性能,通常会考虑对静态资源进行压缩。compression-webpack-plugin 是一个常用的 Webpack 插件,用于在生产环境中对文件进行 Gzip 压缩。这对于减少网络传输时间和提高页面加载速度非常有帮助。下面是如何在…

不同开发语言之for循环的用法、区别总结

一、Objective-C &#xff08;1&#xff09;标准的c风格 for (int i 0; i < 5; i) {NSLog("i %d", i); } &#xff08;2&#xff09;for in循环。 NSArray *array ["apple", "banana", "orange"]; for (NSString *fruit in …

ctfshow做题笔记—栈溢出—pwn65~pwn68

目录 前言 一、pwn65(你是一个好人) 二、pwn66(简单的shellcode&#xff1f;不对劲&#xff0c;十分得有十二分的不对劲) 三、pwn67(32bit nop sled)&#xff08;确实不会&#xff09; 四、pwn68(64bit nop sled) 前言 做起来比较吃力哈哈&#xff0c;自己还是太菜了&…

Git基础之工作原理

基础概念 git本地有三个工作区域&#xff0c;工作目录 Working Directory&#xff0c;暂存区Stage/Index和资源区Repository/Git Directory&#xff0c;如果在加上远程的git仓库就是四个工作区域 四个区域与文件交换的命令之间的关系 WorkSpace&#xff1a;工作区&#xff0c;就…

Linux 指定命令行前后添加echo打印内容

目录 一. 前提条件二. 通过sh脚本进行批量修改三. 通过Excel和文本编辑器进行批量转换四. 实际执行效果 一. 前提条件 ⏹项目中有批量检索文件的需求&#xff0c;如下所示需要同时执行500多个find命令 find ./work -type f -name *.java find ./work -type f -name *.html fi…

Immich自托管服务的本地化部署与随时随地安全便捷在线访问数据

文章目录 前言1.关于Immich2.安装Docker3.本地部署Immich4.Immich体验5.安装cpolar内网穿透6.创建远程链接公网地址7.使用固定公网地址远程访问 前言 小伙伴们&#xff0c;你们好呀&#xff01;今天要给大家揭秘一个超炫的技能——如何把自家电脑变成私人云相册&#xff0c;并…