VsCode 配置 C/C++ 开发环境

发布于:2025-07-05 ⋅ 阅读:(14) ⋅ 点赞:(0)

简述一下步骤哈:

  1. 下载VsCode(这点大家都会哈)
  2. 下载MingG64(C/C++编译器【gcc】),配置环境变量
  3. 在VsCode配置一下C/C++运行时环境
  4. 测试运行

1、准备MingG64

VsCode 本身是没有C/C++编译的,这里我们自己去下载一个MingG64 就可以了。

下载地址页面:MingG64

在这个页面选择你想要的MingG64版本进行下载,能玩新的就玩新的哈,不然没劲哈。

我们选择的是这个x86_64-posix-seh,下载下来就是个7z的压缩包哈,无需安装的。

 

下载完,解压到自己想要放置的目录中去。

目录结构:

2、配置MingG64环境变量

这个蛮简单的哈。

先复制我们之前MingG64放置的路径位置,一直到bin路径哈。

如我的就是:D:\computeSoft\cpp\mingw64\bin

鼠标右键点击我的电脑–>点击 高级系统配置–>点击 环境变量点击新建将你的复制好的路径粘贴进去即可。

测试是否安装好

我们按下 win+r ,输入cmd,来命令行,输入gcc --version进行测试。弹出这样的就是配置成功了。

3、VsCode配置C/C++开发环境

3.1、安装C/C++扩展

创建一个空文件夹,确保这个文件夹所在的文件路径没有中文字符哈,不然会报错的。

然后我们用VsCode打开。

安装一下这个哈。

安装完成之后,直接在VsCode中按 ctrl+shift+p快捷键

出现以下界面: 直接搜索C/C++即可,我是因为已经搜过了。

搜到后点进去:这里附属一张中文翻译版本截图

3.2、修改生成的Json配置文件

用VsCode 打开这个空文件夹,新建一个test.cpp文件哈。

#include <stdio.h>
#include <windows.h>
int main()
{
    printf("Hello\n");
    system("pause"); // 保持窗口不被关闭哈 这个固定的方法我还没找到 只能先这么写了
    return 0;
}

打开launch.json文件,再次点击run--> add Configuration

之后我直接放图哈。点击运行–>以非调试模式运行。

点击后,弹出如下弹窗选项:                

附属上其他的人VsCode会默认生成一个.vscode文件夹:

平常在文章中看到的要编辑的json文件也就这两个了。

默认生成的文件如下:

c_cpp_properties.json

{
    "configurations": [
        {
            "name": "Win32",
            "includePath": [
                "${workspaceFolder}/**"
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "_UNICODE"
            ],
            "compilerPath": "D:\\computeSoft\\cpp\\mingw64\\bin\\gcc.exe",
            "cStandard": "c17",
            "cppStandard": "gnu++14",
            "intelliSenseMode": "windows-gcc-x64"
        }
    ],
    "version": 4
}

task.json

{
    "tasks": [
        {
            "type": "cppbuild",
            "label": "C/C++: gcc.exe build active file",
              //C语言就改成gcc.exe,C++就改成g++.exe
            "command": "D:\\computeSoft\\cpp\\mingw64\\bin\\gcc.exe",
            "args": [
                "-fdiagnostics-color=always",
                "-g",
                "${file}",
                "-o",
                "${fileDirname}\\${fileBasenameNoExtension}.exe"
            ],
            "options": {
                "cwd": "${fileDirname}"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "detail": "Task generated by Debugger."
        }
    ],
    "version": "2.0.0"
}

我们需要添加或修改的地方:

第一个,将launch.json文件中第16行的externalConsole属性修改为true,这样就能弹出窗口第二个:在task.json文件中的tasks属性下的args中增加两行属性:

"-fexec-charset=GBK", // 处理mingw中文编码问题

"-finput-charset=UTF-8",// 处理mingw中文编码问题 

 4、测试运行,直接按ctrl+F5也能运行

#include <stdio.h>
#include <windows.h>
int main()
{
    printf("Hello World!\n");
    printf("很高兴,能够遇到你! \n");
    system("pause");
    return 0;
}

扩展:g++和gcc的区别

g++和gcc的区别:

1、对于不同后缀的文件当作程序不同。c后缀的文件,gcc把它当做是C程序;g++当做是C++程序;对于.cpp后缀的文件,gcc和g++都会当做c++程序。gcc可以判断出目标程序所使用编程语言的类别,会把xx.c文件当做C语言编译,把xx.cpp文件当做C++语言编译。而g++只把xx.c和xx.cpp一律当做C++语言来编译

2、编译阶段调用不同,g++会调用gcc。

3、连接阶段方式不同,通常会用g++来完成,这是因为gcc命令不能自动和c++程序使用的库连接。

4、在编译C++文件时,g++会自动连接一些标准库或基础库,而gcc不会,当正在编译的C++代码文件依赖STL标准库时候,为了使用STL,gcc命令需要增加参数-lstdc++。因此虽然gcc和g++都可以编译C++ 语言,但是使用g++会更方便一些。

gcc/g++在执行编译工作的时候,总共需要4步:第一步预处理,生成.i的文件预处理器cpp。第二步将预处理后的文件转换成汇编语言,生成文件.s编译器egcs。第三步有汇编变为目标代码(机器代码)生成.o的文件汇编器as。第四步连接目标代码,生成可执行程序链接器ld。

扩展: VSCode的Json配置

tasks.json

tasks.json 文件定义了 VSCode 中的构建任务。你可以配置 VSCode 在构建(编译)你的项目时应执行的操作。例如,使用 g++ 编译器编译 C++ 代码。

点击左上角...:终端:配置任务

点击:C/C++:g++.exe 生成活动文件

在.vscode文件夹自动创建了tasks.json,下面包含了完整解释:

 {
    // 配置文件版本
    "version": "2.0.0",

    "tasks": [
        {
            // 任务名称
            "label": "C/C++: 使用 g++ 生成可执行文件",

            // 任务类型
            "type": "cppbuild",

            // 编译器路径
            "command": "g++.exe",

            // 编译参数
            "args": [
                "-fdiagnostics-color=always", // 彩色输出
                "-g",                         // 含调试信息
                "${file}",
                "-o",
                "${fileDirname}\\${fileBasenameNoExtension}.exe"
            ],

            // 当前工作目录
            "options": {
                "cwd": "${fileDirname}"
            },

            // 错误匹配器
            "problemMatcher": ["$gcc"],

            // 构建任务组,设为默认
            "group": {
                "kind": "build",
                "isDefault": true
            },

            // 附加信息
            "detail": "由调试器自动生成的 C++ 编译任务"
        }
    ]
}

launch.json

launch.json 文件定义了调试配置。你可以配置 VSCode 如何启动和调试你的应用程序,包括设置调试器路径、启动参数等。

点击左上角...:运行:添加配置

点击:C/C++(GDB/LLDB)

点击添加配置:{}C/C++: (gdb) Windows 上的 Bash 启动

在.vscode文件夹自动创建了launch.json,下面包含了完整解释:
 

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "C/C++: 使用 gdb 启动调试",
            "type": "cppdbg",
            "request": "launch",

            // 设置为当前 .cpp 文件对应的可执行文件
            "program": "${fileDirname}\\${fileBasenameNoExtension}.exe",

            "args": [],
            "stopAtEntry": false,
            "cwd": "${fileDirname}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",

            // 推荐设置为 MinGW 的 gdb 完整路径(自动也可以)
            "miDebuggerPath": "gdb.exe",

            // 启动调试器时运行的初始化命令
            "setupCommands": [
                {
                    "description": "启用 gdb 整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                },
                {
                    "description": "设置反汇编风格为 Intel",
                    "text": "-gdb-set disassembly-flavor intel",
                    "ignoreFailures": true
                }
            ],

            // 关键项:调试前自动构建,确保是最新的可执行文件
            "preLaunchTask": "C/C++: 使用 g++ 生成可执行文件"
        }
    ]
}

c_cpp_properties.json

c_cpp_properties.json是一个配置文件,用于指定C/C++项目的编译器和头文件路径等相关设置。

按Ctrl+Shift+P调出命令面板

输入C/C++: Edit Configurations (UI)并选择它

使用此编辑器编辑在基础c_cpp_properties.json文件中定义的 IntelliSense 设置。在此编辑器中所做的更改仅适用于所选的配置。要一次编辑多个配置,请转到 c_cpp_properties.json

在.vscode文件夹自动创建了c_cpp_properties.json,下面包含了完整解释: 

{
    // 配置数组
    // 包含所有代码配置的数组。
    "configurations": [
        {
            // 配置名称
            // 此配置的名称为“Win32”。
            "name": "Win32",
            
            // 包含路径
            // 编译时要包含的路径,可以使用通配符。
            "includePath": [
                "${workspaceFolder}/**"
            ],
            
            // 预处理器定义
            // 编译时定义的预处理器宏。
            "defines": [
                "_DEBUG",    // 调试模式
                "UNICODE",   // 使用 Unicode 字符集
                "_UNICODE"   // 使用 Unicode 字符集
            ],
            
            // 编译器路径
            // 指定编译器的路径。
            "compilerPath": "D:\\CPPcode\\MinGW\\bin\\gcc.exe",
            
            // C标准
            // 指定要使用的C语言标准。
            "cStandard": "c17",
            
            // C++标准
            // 指定要使用的C++语言标准。
            "cppStandard": "gnu++17",
            
            // IntelliSense 模式
            // 指定IntelliSense的模式。
            "intelliSenseMode": "windows-gcc-x64"
        }
    ],
    
    // 配置文件版本
    // 此配置文件的版本。
    "version": 4
}

问题:如果碰到:

launch: program 'D:\projectCpp\cProject\demoCPP01' does not exist这类报错的,按照如下修改

1、确认编译的是C还是C++

如果是C,就将task.json中的command中的改成gcc.exe

如果是C++,这里就改成g++.exe

launch.json如果非需要,可以不配置,否则不会重新编译,感觉launch.json这个文件会在task.json之前执行,但是program这个参数表示可执行的文件,还是必填,此时文件还未编译就找不到文件

参考:

1、VsCode 配置 C/C++ 开发环境,真的很简单-腾讯云开发者社区-腾讯云

2、【操作与配置】VSCode配置C/C++及远程开发_vscode c++远程调试-CSDN博客

3、保姆级教程:C++/C 编程运行环境配置,C++/C 运行环境搭建_c++环境配置-CSDN博客


网站公告

今日签到

点亮在社区的每一天
去签到