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

VSCode配置C/C++

本教程基于以下视频制作
视频地址

工具

工具配置

MinGW-w64环境变量

  1. 将MinGW-w64下的bin文件夹的路径配置到环境变量path中

  2. 通过终端(cmd)命令where gcc 验证,会得到相关路径

    如下图

    MinGW-w64环境变量验证

下载VS Code插件

C/C++ Extension Pack (扩展包)

其中包括:
- C/C++
- C/C++ Themes
- CMake
- CMake Tools

设置c/c++编译选项

在vscode中使用快捷键 Ctrl+Shift+P 在出现的菜单中选择 C/C++编辑配置(UI)

  1. 更改编译器路径

    填入之前验证环境变量时终端(cmd)输出的路径, 如下图

    编译器路径

  2. 更改IntelliSense 模式(代码提示的模式)

    选择gcc-x64(legacy) ,如下图

    代码提示模式

配置完成后VSCode当前打开的文件夹中会生成一个.vscode文件夹, 其中有一个c_cpp_properties.json文件, 文件内容就是刚才更改后的配置和一些默认配置,鼠标放到配置字段上, 会显示出相关的解释

vscode配置并编译C

  1. 测试代码

    源代码如下

    #include<stdio.h>
    
    int main(){
        printf("hello word !");
        return 0;
    }
    
  2. 创建执行任务

    选择菜单栏的终端,点击配置任务, 如下图(需要代码文件在前台)

    配置任务

    选择编译器, 就会生成文件tasks.json (与之前的c_cpp_properties.json在相同的位置)

    选择编译器

    其中
    command 指定的是编译器,
    ${file} 指的是被编译的文件,
    ${fileDirname}\\${fileBasenameNoExtension}.exe 指的是生成的可执行程序的路径和名字

  3. 编译 + 执行

    1. 将需要编译的代码文件放到前台

    2. 依次点击 [终端] > [运行生成任务] 之后选择配置好的任务

      运行生成的任务

    3. 选择任务后会在终端显示任务运行状态,

      正常的话,会在代码同路径生成*.exe的可执行文件

      编译状态

    4. 打开终端,执行文件, 结果会显示在终端上

      执行结果

vscode配置并编译C++

配置,编译C++代码,使用的工具与C语言是一致的,都是用到了MinGW-w64, 配置步骤也非常相似

  1. 首先,先准备一个c++代码文件(*.cpp)

    // cpp_test.cpp
    #include<iostream>
    using namespace std;
    
    int main(){
    
      int num = 0;
      cin >> num;
      cout << num << endl;
    
      return 0;
    }
    
  2. 在vscode中使用快捷键 Ctrl+Shift+P 打开 C/C++编辑配置(UI) 并配置

    这个时候我们需要注意一下配置名称这个选项, 配置名称是可以修改的, 我们先把之前配置的C语言的配置名称修改为win32_c,之后在新建一个win32_c++的配置

    • 修改配置选项为win32_c,也可以不改, 只是为了便以区分

    Win32_c

    • 新增用于编译c++的配置选项, 我这边使用的名字是Win32_cpp

    增加配置选项

    • 更改编译器路径和IntelliSense 模式(代码提示的模式)

      C++的编译器路径:*/mingw64/bin/g++.exe

      IntelliSense 模式: gcc-x64(legacy)

    修改完成之后可以打开c_cpp_properties.json(编译选项),发现多了一些内容

    {
    "configurations": [
      // c的相关配置
        {
            "name": "Win32_C", // 配置名称
            "includePath": [
                "${workspaceFolder}/**"
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "_UNICODE"
            ],
            "compilerPath": "D:\\Program Files (x86)\\mingw64\\bin\\gcc.exe", // 编译器路径
            "cStandard": "c17",
            "cppStandard": "c++23",
            "intelliSenseMode": "gcc-x64" // IntelliSense 模式
        },
        // 新增的c++的相关配置
        {
            "name": "win32_C++",
            "includePath": [
                "${workspaceFolder}/**"
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "_UNICODE"
            ],
            "compilerPath": "D:/Program Files (x86)/mingw64/bin/g++.exe",
            "cStandard": "c17",
            "cppStandard": "c++17",
            "intelliSenseMode": "gcc-x64"
        }
      ],
    "version": 4
    }
    
  3. 编译c++代码文件

    • 将c++代码文件放到前台

    • 选择菜单[终端]-[配置任务],在弹窗中选择C/C++:g++.exe生成活动文件

    c++配置任务

    执行完上述步骤, 会发现tasks.json和编译选项配置文件一样也增加一些内容, 内容与编译选项类似, 不再截图说明

    • 选择菜单[终端]-[运行任务],在弹窗中选择C/C++:g++.exe生成活动文件

    C++编译结果

    这样就会在从C++源代码文件相同的路径下生成一个*.exe文件

    • 执行生成的exe文件

    c++执行结果

调试C/C++代码

调试代码依赖与配置文件launch.json

  1. 生成调试配置文件launch.json

    点击vscode右侧按钮运行与调试, 快捷键Ctrl + Shift + D,
    点击蓝色文字 创建launch.json文件
    此时会生成 launch.json.vscode文件夹

    vscode调试配置

  2. 修改配置信息

    需要调试的程序 program

    调试器的路径 miDebuggerPath

    调试文件示例

多文件编译

一般写的程序每个文件只做一件事, 后期通过相互调用生成程序, 这样就需要进行多文件编译, 让多个文件生成一个可执行文件(*.exe)

  1. 准备文件

    // 文件一 test_multiplefiles.c
    
    #include<stdio.h>
    
    // 声明函数
    extern int Add(int x, int y);
    
    int main(){
      int a = 10;
      int b = 30;
      int sum = Add(a,b);
      printf("%d + %d = %d",&a,&b,&sum);
      return 0;
    }
    
    
    // 文件二 add.c
    // 定义函数
    int Add(int x, int y){
      return x + y;
    }
    
  2. 调整配置文件

    要想实现多文件编译, 需要调整配置文件参数

    配置文件共两个, 一个是编译选项(c_cpp_properties.json), 另外一个是编译配置(tasks.json), 需要修改的是后者

    在要传给编译器的参数args

    ${file}修改为${workspaceFolder}\\*.c

    ${fileDirname}\\${fileBasenameNoExtension}.exe 修改为${workspaceFolder}\\${workspaceRootFolderName}.exe

    编译窗口

    多文件编译

    执行窗口

    多文件编译后执行

TIPS

${file}: 选中的当前文件

${workspaceFolder}\\*.c: 该工作空间下所有的C语言源码文件

${fileDirname}\\${fileBasenameNoExtension}.exe: 与源码文件路径以及名称一致

${workspaceFolder}\\${workspaceRootFolderName}.exe: 与工作空间名称一致

${fileDirname}\\*.c: 源文件当前文件夹下所有的源码文件

编译多文件时, 只能有一个main()函数

posted @   小郭me  阅读(10693)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示