VSCode 配置 C++ 环境

简介: VSCode 配置 C++ 环境

VSCode 配置 C++ 环境

VSCode(Visual Studio Code)是一款轻量级的代码编辑器,拥有丰富的插件生态系统,支持多种语言开发。在本文中,作者将介绍如何在 VSCode 中配置 C++ 环境,以便于开发和调试 C++ 代码。

VSCode 具有以下优势:

  • 轻量级:相比于其他 IDE,VSCode 占用的资源更少,启动更快。
  • 插件丰富:VSCode 拥有丰富的插件生态系统,可以满足不同开发者的需求。
  • 跨平台:VSCode 支持在 Windows、macOS 和 Linux 上运行。
  • 集成 Git:VSCode 内置 Git 支持,方便代码版本控制。

1. 配置 C++ 编译器

首先需要安装 C++ 编译器。在 Windows 上,可以安装 MinGW 或者 Visual Studio;在 MacOS 上,可以安装 Clang 或者 Xcode;在 Linux 上,可以安装 GCC。

作者将以 Windows 的 MinGW 为例:

1.1 下载 MinGW

官方下载:https://www.mingw-w64.org/downloads/

sourceforge下载:https://sourceforge.net/projects/mingw-w64/files/

(1)进入 sourceforge 网页,点击 x86_64-win32-seh 进行下载:

注意:

如果因网速等原因下载较慢,可点击链接并输入密码直接获取:https://luguoliang.lanzouk.com/iN7OB0yrr12h 密码:liang

(2)解压该压缩包(x86_64-8.1.0-release-win32-seh-rt_v6-rev0.7z),解压之后会出现一个 mingw64 文件夹:

1.2 添加环境变量

win + i 调出系统设置,在查找设置中输入环境变量,点击编辑账户的环境变量,将 mingw64 下的 bin 路径(作者为 D:\Software\mingw64\bin)添加至用户变量:

注意: 添加完环境变量后,务必重启电脑。

1.3 测试

win + R 输入 cmd 打开 CMD 命令窗口,输入以下指令即可验证 MinGW 是否配置成功:

gcc -v

若输出以下内容,即配置成功:

C:\Users\xxxxx>gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=D:/Software/mingw64/bin/../libexec/gcc/x86_64-w64-mingw32/8.1.0/lto-wrapper.exe
Target: x86_64-w64-mingw32
Configured with: ...
Thread model: win32
gcc version 8.1.0 (x86_64-win32-seh-rev0, Built by MinGW-W64 project)

2. 配置编辑器 VSCode

VSCode(Visual Studio Code)是一款流行的跨平台代码编辑器,具有许多特性,使其成为编写 C++ 代码的的理想选择。

2.1 下载 VSCode

进入官网:https://code.visualstudio.com,点击下载:

安装 VSCode(一直默认即可)。

2.2 安装插件

搜索插件 C/C++,点击 Install 下载:

2.3 运行代码

新建一个文件夹 Test 并在 VSCode 中打开,再新建一个 test.cc,输入以下代码:

#include <iostream>
int main(){
    std::cout << "Hello World! 你好呀 C++" << std::endl;
    return 0;
}

点击导航栏中的 Run,选择 Run Without Debugging

点击 C++ (GDB/LLDB),再选择 C/C++:g++.exe

输出如下:

3. 优化

为了更加方便的使用 VSCode 来编写 C++ 代码,将对其进行一些优化,实现以下功能:

  • 打印结果弹窗显示
  • 解决中文乱码问题
  • 收纳 .exe 可执行文件

项目文件结构如下图所示:

  • C++:项目文件
  • .vscode:VSCode 配置文件
  • c_cpp_properties.jsonlaunch.jsontasks.json
  • Code:代码文件
  • build:收纳 .exe 可执行文件

c_cpp_properties.json 内容如下:

{
    "configurations": [
        {
            "name": "Win32",
            "includePath": [
                "${workspaceFolder}/**"
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "_UNICODE"
            ],
            "windowsSdkVersion": "10.0.17763.0",
            "compilerPath": "D:\\Software\\mingw64\\bin\\g++.exe", /*bin目录下的g++.exe,两个反斜杠\\*/
            "cStandard": "c11",
            "cppStandard": "c++17",
            "intelliSenseMode": "${default}"
        }
    ],
    "version": 4
}

launch.json 内容如下:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "g++.exe build and debug active file",
            "type": "cppdbg",
            "request": "launch",
            "program": "${fileDirname}\\build\\${fileBasenameNoExtension}.exe", /*收纳exe可执行文件*/
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": true,
            "MIMode": "gdb",
            "miDebuggerPath": "D:\\Software\\mingw64\\bin\\gdb.exe", /*bin目录下的gdb.exe,两个反斜杠\\*/
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "task g++"
        }
    ]
}

tasks.json 内容如下:

{
    "version": "2.0.0",
    "tasks": [
        {
            "type": "shell",
            "label": "task g++",
            "command": "D:\\Software\\mingw64\\bin\\g++.exe", /*bin目录下的g++.exe,两个反斜杠\\*/
            "args": [
                "-g",
                "${file}",
                "-o",
                "${fileDirname}\\build\\${fileBasenameNoExtension}.exe", /*收纳exe可执行文件*/
                "-fexec-charset=GBK", /*中文乱码*/
                "-I",
                "F:\\C++", /*c/c++项目的文件夹,两个反斜杠\\*/
                "-std=c++17"
            ],
            "options": {
                "cwd": "D:\\Software\\mingw64\\bin" /*bin目录,两个反斜杠\\*/
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": "build",
        }
    ]
}

整体效果如下:

Reference

[1]VsCode安装和配置C++环境详细全流程

[2]VScode中配置C语言/C++运行环境

相关实践学习
阿里云图数据库GDB入门与应用
图数据库(Graph Database,简称GDB)是一种支持Property Graph图模型、用于处理高度连接数据查询与存储的实时、可靠的在线数据库服务。它支持Apache TinkerPop Gremlin查询语言,可以帮您快速构建基于高度连接的数据集的应用程序。GDB非常适合社交网络、欺诈检测、推荐引擎、实时图谱、网络/IT运营这类高度互连数据集的场景。 GDB由阿里云自主研发,具备如下优势: 标准图查询语言:支持属性图,高度兼容Gremlin图查询语言。 高度优化的自研引擎:高度优化的自研图计算层和存储层,云盘多副本保障数据超高可靠,支持ACID事务。 服务高可用:支持高可用实例,节点故障迅速转移,保障业务连续性。 易运维:提供备份恢复、自动升级、监控告警、故障切换等丰富的运维功能,大幅降低运维成本。 产品主页:https://www.aliyun.com/product/gdb
目录
相关文章
|
2月前
|
Python
新手向 Python:VsCode环境下Manim配置
该文介绍了如何准备和配置开发环境以使用Manim,主要包括两个步骤:一是准备工作,需要下载并安装VsCode和Anaconda,其中Anaconda需添加到系统PATH环境变量,并通过清华镜像源配置;二是配置环境,VsCode中安装中文插件和Python扩展,激活并配置虚拟环境。最后,安装ffmpeg和manim,通过VsCode运行测试代码验证配置成功。
78 1
|
2月前
|
编译器 开发工具 C语言
配置C++的学习环境
这篇教程介绍了学习C++语言所需的环境配置和软件选择。首先,你需要一个文本编辑器(如Visual Studio Code、Visual Studio、Vim、Emacs或Eclipse)和一个C++编译器(如GCC)。在不同操作系统上安装GCC的方法包括:在Linux或UNIX上使用命令行检查或安装GCC,在Mac OS X上通过Apple的Xcode,而在Windows上则需要安装MinGW。教程还提供了使用Visual Studio创建和编译C++程序的步骤。最后,文章简述了g++编译器的使用及其常用命令选项。
40 0
|
2月前
|
C++ 容器
【C++】STL之空间配置器(了解)
【C++】STL之空间配置器(了解)
|
21天前
|
缓存
如何彻底卸载VSCode及其原来的插件配置缓存
如何彻底卸载VSCode及其原来的插件配置缓存
47 0
|
26天前
cocos creator+vscode安装及配置介绍
cocos creator+vscode安装及配置介绍
25 0
|
2月前
|
C++
VS code debug c代码 配置
VS code debug c代码 配置
25 0
|
12天前
|
设计模式 安全 编译器
【C++11】特殊类设计
【C++11】特殊类设计
32 10
|
17天前
|
C++
C++友元函数和友元类的使用
C++中的友元(friend)是一种机制,允许类或函数访问其他类的私有成员,以实现数据共享或特殊功能。友元分为两类:类友元和函数友元。类友元允许一个类访问另一个类的私有数据,而函数友元是非成员函数,可以直接访问类的私有成员。虽然提供了便利,但友元破坏了封装性,应谨慎使用。
45 9
|
12天前
|
存储 编译器 C语言
【C++基础 】类和对象(上)
【C++基础 】类和对象(上)
|
20天前
|
编译器 C++
【C++】string类的使用④(字符串操作String operations )
这篇博客探讨了C++ STL中`std::string`的几个关键操作,如`c_str()`和`data()`,它们分别返回指向字符串的const char*指针,前者保证以&#39;\0&#39;结尾,后者不保证。`get_allocator()`返回内存分配器,通常不直接使用。`copy()`函数用于将字符串部分复制到字符数组,不添加&#39;\0&#39;。`find()`和`rfind()`用于向前和向后搜索子串或字符。`npos`是string类中的一个常量,表示找不到匹配项时的返回值。博客通过实例展示了这些函数的用法。