本文介绍了如何在 Windows 10 下使用 VSCode 配置 C/C 环境,编译器采用 MinGW-w64(gcc 在Windows 下的支持),下面我们就来聊聊关于vscode配置嵌入式开发环境?接下来我们就一起去了解一下吧!

vscode配置嵌入式开发环境(Windows下VSCode配置C环境)

vscode配置嵌入式开发环境

介绍

本文介绍了如何在 Windows 10 下使用 VSCode 配置 C/C 环境,编译器采用 MinGW-w64(gcc 在Windows 下的支持)

主要参考了微软 VSCode 官方文档配置 Mingw-w64文档:Mingw-w64 on Windows,含有大量的翻译内容

配置编译器

Mingw-w64 http://mingw-w64.org/doku.php

Mingw-w64 是原始 mingw.org 项目的改进,旨在支持 Windows 系统上的 GCC 编译器。它在

2007 年进行了分叉,以提供对 64 位和新 API 的支持。从那以后,它得到了广泛的使用和分配。

注意 MinGW-w64 与 MinGW 是有区别的,不要选错

1. 下载

托管在此网站:http://sourceforge.net/projects/mingw-w64/files/

可以直接选择在线安装器:MinGW-W64 Online Installer

MinGW-W64-install.exe

也可以选择相应版本安装,这里我选择的是 x86_64-posix-seh

2. 安装

方法1. 使用安装包

选项说明:

名称

可选项

说明

选择建

Version

根据需

求,无

需求则

最大

Architecture

x86_64,i686

64 位系统选择 x86_64,32 位系统

选择 i686

x86_64

Threads

线

posix,win32

posix,跨平台好。win32 性能好

posix

Exception

x86_64:

sjlj,seh。

i686:sjlj,

dwarf。

sjlj 同时支持 32 位和 64 位,稳定

性好。seh 和 dwarf 只分别支持 64

位、32位,但性能好

seh

Build

revision

参考:http://wiki.qt.io/MinGW-64-bit

方法2. 压缩包(推荐)

下载相应的安装包,具体版本选择参考上表,选择合适位置解压至路径中没有空格的文件夹(换句话说,不能是 C:/Program Files/ 下的默认位置,可以是 C:\mingw-w64 )

3. 添加环境变量

将 mingw64 下的 bin 文件夹添加至 path

4. 检查

执行命令

g --version gdb --version

配置 IDE

VSCode

1. 安装 MinGW-w64

2. 安装 C/C 插件

3. 配置

这里我们需要在 .vscode 文件夹下共创建如下3个文件:

  • tasks.json (生成任务。告诉 VSCode 如何生成(编译)程序,该任务将调用 g 编译器

    以基于源代码创建可执行文件)

  • launch.json (调试器设置)

  • c_cpp_properties.json (编译器路径和 IntelliSense 设置)

    具体操作说明:

    1. 创建 C 示例代码文件 Hello World,并保存,确保存在于文件夹中,而非临时文件

    示例代码:

    2. 配置 tasks.json ,用于编译

    #include <iostream> #include <vector> #include <string> using namespace std; int main() { vector<string> msg {"Hello", "C ", "World", "from", "VS Code", "and the C extension!"}; for (const string& word : msg) { cout << word << " "; } cout << endl; }

    1. 配置 tasks.json

    菜单 > 终端 > 配置默认生成任务

    下拉列表中,列出了 C 编译器的各种预定义构建任务。选择 C/C : g .exe build

    active file。若是 C,请选择 C/C : gcc.exe build active file,C 无法使用 g .exe

    Note: 是 C 还是 C 是根据文件后缀名来判断的,而非根据右下角选择的语言

    完成后会在 .vscode 文件夹下创建 task.json 文件并打开

    部分变量说明:

  • command 设置指定要运行的程序;在这种情况下是g 。

  • args 数组指定将传递给 g 的 命令行参数。必须按照编译器期望的顺序指定这

    些参数。此任务告诉 g 获取活动文件( ${file} ),对其进行编译,并在当前

    目录( ${fileDirname} )中创建一个与活动文件同名但以 .exe 为扩展名

    ( ${fileBasenameNoExtension}.exe )的可执行文件,如 helloworld.exe。

    可使用 "${workspaceFolder}\\*.cpp" 来替换 ${file} ,这将生成当前文件夹

    中的所有 .cpp 文件

  • label 是在任务列表中显示的值,可以随意命名

  • group 中 "isDefault": true 指定当按 Ctrl Shift B 时将运行此任务。此属

    性仅出于方便起见;如果设置为 false,仍然可以使用“ 任务:运行构建任务”从“终

    端”菜单中运行

  • group 中的 "isDefault": true ,指定当按下 Ctrl Shift B 时将运行此任

    务。此属性仅出于方便起见;如果将其设置为 false,仍可以使用“ 运行生成任务”

    从“终端”菜单中运行

    附 task.json变量参考 http://code.visualstudio.com/docs/editor/variables-reference

    2. 运行生成任务,编译

    回到 helloworld.cpp ,按 Ctrl Shift B 或从“ 终端”菜单中选择“ 运行生成任务”

    成功如图所示

    且当前文件夹下会多出一个 helloworld.exe 文件,可以使用” “按钮新建一个终端,

    用来执行它,输入 .\helloworld.exe

    3. 配置 launch.json ,用于调试

    1. 配置 launch.json

    按 F5 或 菜单 > 调试 > 添加配置 > 选择“ C (GDB / LLDB)”

    将看到各种预定义调试配置的下拉列表,选择 g .exe build and debug active file

    VSCode 将会创建 launch.json 文件并打开

    部分变量说明:

  • program 设置指定要调试的程序

  • 默认情况下,C 扩展不会在您的源代码中添加任何断点,并且 stopAtEntry 值设置

    为 false 。将 stopAtEntry 值更改为 true 会导致调试器开始调试时在 main 方法

    上停止

    记得保存修改

    2. 调试

    回到 helloworld.cpp ,按F5或从主菜单中选择“ 调试”>“开始调试”

  • Step over (单步跳过)

    前进到该程序中的下一条语句(跳过为初始化循环而执行的所有内部代码)

  • Step Into (单步调试)

    逐步浏览 C 标准库中的源代码,若要返回自己的代码,可以按 Step over (单

    步跳过)或者直接切换选项卡

    具体调试过程省略,有兴趣的朋友可以在底部的参考链接参考官方文档中的调试

    设置 WATCH :

    可以用来跟踪变量的值

    将断点设置为如图所示位置,并在 WATCH 窗口中点击“ ”,在文本框中输入“word”,这

    是循环中的变量名,当逐步执行循环时,可发现 WATCH 窗口中的“word”的值在变化

    可在调试时,将鼠标悬浮于变量中,快速查看任何变量的值

    4. 配置 c_cpp_properties.json ,进一步配置 C/C 扩展。非必要步骤

    1. 按快捷键 Ctrl Shift P 打开命令面板,输入 C/C ,选择“Edit Configurations(UI)”

    将生成配置文件 c_cpp_properties.json 并打开

    2. 配置以下两个选项

  • 编译器路径 compilerPath

    应该会自动填充,我这里是

    D:\\Develop\\compilers\\mingw64\\bin\\gcc.exe

    compilerPath 搜索顺序是:

  • 首先检查 Microsoft Visual C 编译器

  • 然后在 Windows Subsystem for Linux(WSL)上寻找 g

  • 然后是用于 Mingw-w64 的 g

    因此,如果安装了 Visual Studio 或 WSL,则可能需要更改 compilerPath

  • IntelliSense 模式

    选择 gcc-x64

    配置文件参考

    task.json

    { "version": "2.0.0", "tasks": [ { "type": "shell", "label": "g .exe build active file", "command": "C:\\mingw-w64\\i686-8.1.0-posix-dwarf-rt_v6- rev0\\mingw32\\bin\\g .exe", "args": ["-g", "${file}", "-o", "${fileDirname}\\${fileBasenameNoExtension}.exe"], "options": { "cwd": "C:\\mingw-w64\\i686-8.1.0-posix-dwarf-rt_v6-rev0\\mingw32\\bin" }, "problemMatcher": ["$gcc"], "group": { "kind": "build", "isDefault": true } } ] }

    launch.json

    { "version": "0.2.0", "configurations": [ { "name": "g .exe build and debug active file", "type": "cppdbg", "request": "launch", "program": "${fileDirname}\\${fileBasenameNoExtension}.exe", "args": [], "stopAtEntry": false, "cwd": "${workspaceFolder}", "environment": [], "externalConsole": false, "MIMode": "gdb", "miDebuggerPath": "C:\\mingw-w64\\i686-8.1.0-posix-dwarf-rt_v6-rev0\\mingw32\\bin\\gdb.exe", "setupCommands": [ { "description": "Enable pretty-printing for gdb", "text": "-enable-pretty-printing", "ignoreFailures": true } ], "preLaunchTask": "g .exe build active file" } ] }

    c_cpp_properties.json

    { "configurations": [ { "name": "Win32", "includePath": ["${workspaceFolder}/**"], "defines": ["_DEBUG", "UNICODE", "_UNICODE"], "compilerPath": "C:\\mingw-w64\\i686-8.1.0-posix-dwarf-rt_v6-rev0\\mingw32\\bin\\gcc.exe", "cStandard": "c11", "cppStandard": "c 17", "intelliSenseMode": "clang-x86" } ], "version": 4 }

    均位于 .vscode 文件夹下

    不想看此文的小白的可以直接创建 .vscode 文件夹,在文件夹下创建这3个文件哦!

    参考

    VSCode 官方文档:http://code.visualstudio.com/docs/cpp/config-mingw