Visual Studio Code (VSCode) 配置搭建 C/C++ 开发编译环境的流程

下面是关于Visual Studio Code (VSCode) 配置搭建 C/C++ 开发编译环境的流程的完整攻略:

准备工作

Step 1 安装Visual Studio Code

首先,我们需要在官网下载并安装 Visual Studio Code,官网地址为:https://code.visualstudio.com/

Step 2 安装C/C++插件

进入Visual Studio Code软件,按下Ctrl+Shift+X快捷键,打开扩展页面,在搜索框中输入“C/C++”,选择官方提供的C/C++插件并安装。

Step 3 安装C/C++编译器

接下来,我们需要安装C/C++编译器,这里提供两个比较常见的编译器:

  • MinGW编译器(适用于Windows和Linux系统)下载地址:https://sourceforge.net/projects/mingw/
  • LLVM编译器(适用于MacOS和Linux系统)下载地址:http://releases.llvm.org/download.html

Step 4 配置环境变量

安装完编译器后,需要将编译器的路径添加到系统的环境变量中。以MinGW为例,我们可以进入MinGW的安装目录,并在bin目录下获取gcc.exe和g++.exe的路径。在系统的环境变量中添加这两个路径即可。

配置调试器

Step 1 安装调试器

为了方便调试,我们需要安装调试器。这里使用官方插件GDB/LLDB,可以支持Windows,Linux和MacOS系统。同样在扩展页面中搜索并安装即可。

Step 2 配置调试器

在Visual Studio Code的“调试”菜单中,点击“添加配置”按钮,选择“C++(GDB/LLDB)”配置。此时Visual Studio Code会自动在工作区的.vscode目录下创建一个launch.json的文件,这个文件即为调试器的配置文件。

其中,需要配置以下内容:

  • type:调试器类型。默认为"GDB",若需要使用LLDB,则将其设置为"lldb"。
  • name:配置名称。
  • request:启动配置的类型。默认为"launch",若需要附加进程,则将其设置为"attach"。
  • program:需要启动调试的程序名称或路径。
  • args:程序所需的命令行参数,可以为空。
  • cwd:程序的工作目录。
  • environment:指定程序的环境变量。
  • externalConsole:默认为false,若为true,则会将控制台输出到VSCode外部的终端上。

配置编译器

Step 1 在VSCode中创建一个C++项目

在VSCode中创建一个新的空文件夹,并在其中新建一个main.cpp文件,包含以下代码:

#include <iostream>

using namespace std;

int main()
{
    cout << "Hello, world!" << endl;

    return 0;
}

Step 2 配置编译器

打开工作区的.vscode目录下的task.json文件。这个任务文件用于描述编译和构建的任务,其中需要配置以下内容:

  • label:编译任务的名称。
  • type:编译器的类型。默认为"shell",若需要使用其他编译器,则可自定义该字段的值。
  • command:编译器的命令。使用编译器时需要指定,例如:"g++"或"clang"等。
  • args:传递给编译器的参数。例如:['${file}', '-o', '${fileDirname}/${fileBasenameNoExtension}']。

下面是一个示例:

{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "build",
            "type": "shell",
            "command": "g++",
            "args": [
                "${file}",
                "-o",
                "${fileDirname}/${fileBasenameNoExtension}"
            ]
        }
    ]
}

在此完成之后,打开main.cpp文件,按下Ctrl+Shift+B快捷键,将会弹出"Select a task"的对话框,选择"build"任务,VSCode就会使用配置的编译器来编译并构建程序,生成一个可执行文件。

示例

示例1:使用MinGW编译器编译和调试C++程序

Step 1. 配置任务文件task.json

{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "build",
            "type": "shell",
            "command": "g++",
            "args": [
                "-g",
                "${file}",
                "-o",
                "${fileDirname}/${fileBasenameNoExtension}.exe"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            }
        }
    ]
}

Step 2. 配置调试器launch.json

"configurations": [
    {
        "name": "g++ - 生成和调试活动文件",
        "type": "cppdbg",
        "request": "launch",
        "program": "${fileDirname}/${fileBasenameNoExtension}.exe",
        "args": [],
        "stopAtEntry": false,
        "cwd": "${workspaceFolder}",
        "environment": [],
        "externalConsole": true,
        "MIMode": "gdb",
        "setupCommands": [
            {
                "description": "为 gdb 启用整齐格式",
                "text": "-enable-pretty-printing",
                "ignoreFailures": true
            }
        ],
        "preLaunchTask": "build",
        "miDebuggerPath": "C:\\MinGW\\bin\\gdb.exe",
        "miDebuggerArgs": "--interpreter=mi2"
    }
]

Step 3. 点击调试按钮

在main.cpp文件中的代码中添加 breakpoint(断点)后,点击工具栏中的调试按钮即可开始调试 C++ 程序。

示例2:使用LLVM编译器编译和调试C++程序

Step 1. 配置任务文件task.json

{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "build",
            "type": "shell",
            "command": "clang++",
            "args": [
                "-g",
                "${file}",
                "-o",
                "${fileDirname}/${fileBasenameNoExtension}"
            ],
            "group": {
                "kind": "build",
                "isDefault": true
            }
        }
    ]
}

Step 2. 配置调试器launch.json

"configurations": [
    {
        "name": "(lldb) 调试",
        "type": "cppdbg",
        "request": "launch",
        "program": "${fileDirname}/${fileBasenameNoExtension}",
        "args": [],
        "stopAtEntry": false,
        "cwd": "${workspaceFolder}",
        "environment": [],
        "externalConsole": false,
        "MIMode": "lldb",
        "preLaunchTask": "build",
        "logging": {
            "engineLogging": true,
            "trace": true,
            "traceResponse": true
        }
    }
]

Step 3. 点击调试按钮

在main.cpp文件中的代码中添加 breakpoint(断点)后,点击工具栏中的调试按钮即可开始调试 C++ 程序。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Visual Studio Code (VSCode) 配置搭建 C/C++ 开发编译环境的流程 - Python技术站

(0)
上一篇 2023年5月23日
下一篇 2023年5月23日

相关文章

  • C语言超详细讲解指针的使用

    C语言超详细讲解指针的使用 什么是指针 指针是C语言中的一种特殊数据类型,它存储了一个变量的地址。通过指针,我们可以访问存储在该地址上的变量。 指针用*标识,在定义一个指针变量时需要指定其指向的数据类型,例如: int *p; // 定义一个指向int类型数据的指针变量p 指针的基本操作 取地址操作 通过在变量名前添加&操作符,我们可以取出该变量的内…

    C 2023年5月24日
    00
  • C++中类的成员函数及内联函数使用及说明

    下面我就来为您详细讲解C++中类的成员函数及内联函数使用及说明的攻略。 类成员函数的定义 在C++中,类的成员函数可以在类的定义中进行声明,并在类外定义函数实现。类成员函数的定义格式如下: class ClassName { public: ReturnType functionName(ParameterList); //… }; ReturnType…

    C 2023年5月22日
    00
  • C++ vector的基本使用示例详解

    C++ vector的基本使用示例详解 什么是C++ vector? C++ vector 是STL(Standard Template Library)中的一个动态数组容器类型,能够灵活地存储和访问不同类型的数据。 如何使用C++ vector? 头文件引入 使用C++ vector,首先需要在代码中引入vector头文件: #include <ve…

    C 2023年5月22日
    00
  • 利用C语言实现经典多级时间轮定时器

    下面我将详细讲解如何利用C语言实现经典多级时间轮定时器。为了更好地演示,我将分以下五个步骤介绍: 定义时间轮结构体 插入定时器 删除定时器 时间轮转动及定时任务的处理 示例说明 1. 定义时间轮结构体 首先,我们需要定义一个时间轮结构体,用于存储定时器信息和管理定时器。结构体包含时间轮的精度、时间间隔、槽数量等信息,以及一个指针数组用于存储定时器节点。定义如…

    C 2023年5月23日
    00
  • C语言实现用户态线程库案例

    C语言实现用户态线程库案例攻略 1. 理解用户态线程库 用户态线程库是一种多线程机制,其特点是由用户程序掌控所有线程的调度和管理,而不是交给操作系统内核的调度。因此,在用户态线程库中,线程的切换和调度通过用户程序实现,减少了系统调用的开销,提高了CPU的利用率和程序响应速度。 用户态线程库分为两类:协作式和抢占式。协作式线程库需要线程主动释放CPU资源,而抢…

    C 2023年5月23日
    00
  • python非单一.py文件用Pyinstaller打包发布成exe

    下面是“Python非单一.py文件用Pyinstaller打包发布成exe”的完整攻略。 什么是Pyinstaller PyInstaller是一个Python应用程序的打包工具。它可以将Python程序打包成单个可执行文件,这让你可以方便地将Python程序发布给其他人,而不需要他们安装Python环境。 Pyinstaller的安装 在安装Pyinst…

    C 2023年5月22日
    00
  • python中的Json模块dumps、dump、loads、load函数用法详解

    下面是关于 Python 中的 Json 模块 dumps、dump、loads、load 函数的使用详解: Json 简介 Json是一种基于文本的轻量级数据交换格式,常用于前后端数据交互、配置文件等场合。在 Python 中,可以使用 Json 模块来对 Json 数据进行解析和生成。 Json 模块函数说明 dumps 函数 dumps 函数将一个 P…

    C 2023年5月23日
    00
  • C语言实现顺序表的基本操作的示例详解

    介绍 C语言是一门基础的编程语言,学习和了解C语言是一种基本的能力,实现顺序表是C语言中的一个常见问题。 什么是顺序表? 顺序表是一种线性结构,其中的元素在物理位置上是连续的。数组是一种简单的顺序表。 在顺序表中,每个元素的位置都能通过它在表中的下标计算出来。例如: int a[5] = {1, 2, 3, 4, 5}; printf("%d&qu…

    C 2023年5月30日
    00
合作推广
合作推广
分享本页
返回顶部