加入星计划,您可以享受以下权益:

  • 创作内容快速变现
  • 行业影响力扩散
  • 作品版权保护
  • 300W+ 专业用户
  • 1.5W+ 优质创作者
  • 5000+ 长期合作伙伴
立即加入
  • 正文
  • 推荐器件
  • 相关推荐
  • 电子产业图谱
申请入驻 产业图谱

VS Code 编译和调试C/C++程序也可以这么爽

05/02 07:13
4829
阅读需 9 分钟
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

本文为大家介绍,如何在VS Code上安装一个C/C++编译器,为VS Code 装上一双会飞的翅膀,废话不多说,我们开始准备起飞。

首先,安装好VS Code之后,需要给其安装一个C/C++扩展。在扩展库里搜索 “c++”。

由于VS Code只是个编辑器,下面就是安装C/C++编译器了,这里我们选择Mingw。它的全称是Minimalist GNU on Windows,它将开源gcc, g++编译器移植到Windows平台,并且包含了Win32 API,从而可以编译出能在Windows平台下运行的可执行程序。

Mingw是托管在SourceForge 上的,可以从SourceForge 中下载Windows Mingw-w64 installer,通过安装器安装。不过,在国内这个安装器好像被墙掉了,在安装的过程中会出现“cannot download repository.txt”的报错,有条件的可以使用VPN安装。

Windows Mingw-w64 installer下载地址:

https://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win32/Personal%20Builds/mingw-builds/installer/mingw-w64-install.exe/download

这里我采用了离线安装的方法安装Mingw,不过下载速度会有些慢,请耐心等待。

离线包下载地址:

https://sourceforge.net/projects/mingw-w64/files/Toolchains%20targetting%20Win64/Personal%20Builds/mingw-builds/8.1.0/threads-posix/sjlj/x86_64-8.1.0-release-posix-sjlj-rt_v6-rev0.7z/download

下载完成后,会得到一个压缩包(x86_64-8.1.0-release-posix-sjlj-rt_v6-rev0.7z),并将其解压。

配置系统环境变量,将bin目录添加到环境变量Path中。

环境变量配置完成后,我们可以打开命令行窗口查看g++/gdb版本。

g++ --version
gcc --version
gdb --version

安装配置成功后,我们就可以开心的写个hello world 庆祝一下了!

新建一个文件夹hello,使用VS Code把文件夹打开,在工作空间新建一个cpp文件helloworld.cpp,并添加代码。

下面该如何编译呢?在菜单栏选择 Terminal > Configure Default Build Task,将会出现一个下拉列表。

选择g++.exe build active file,在工作空间的.vscode目录将会创建一个task.json文件。

{
"version": "2.0.0",
"tasks": [
{
"type": "shell",
"label": "C/C++: g++.exe build active file",
"command": "C:mingw64bing++.exe",
"args": [
"-g",
"${file}",
"-o",
"${fileDirname}${fileBasenameNoExtension}.exe"
],
"options": {
"cwd": "${workspaceFolder}"
},
"problemMatcher": [
"$gcc"
],
"group": {
"kind": "build",
"isDefault": true
}
}
]
}

回到hellowork.cpp文件,使用快捷键Ctrl+Shift+B,将会执行编译任务,在下方的Terminal也会有相应的信息打印。

再新建一个Terminal,执行编译生成的可执行文件helloworld.exe.

接下来我们再来看看,怎么去调试程序呢?我们切回到helloworld.cpp文件,设置好断点,按F5快捷键或者 Run > Start Debugging,就会进入调试模式,并会在.vscode目录下生成一个launch.json文件。

{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "g++.exe - 生成和调试活动文件",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}${fileBasenameNoExtension}.exe",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"miDebuggerPath": "C:mingw64bingdb.exe",
"setupCommands": [
{
"description": "为 gdb 启用整齐打印",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": "C/C++: g++.exe build active file"
}
]
}

同时,我们可以使用调试控制面板控制程序的执行流程。

那我们再多写几行程序,看看调试效果。我们可以看到当执行到数组array赋值语句后,左侧变量栏里的array值会有相应的变化,会显示为初始值。

利用调试控制面板,让程序进入循环,当执行完array重新赋值语句后,左侧变量栏里的array值也会相应的更新。

如果想要查看其它变量的值,可以在代码里右键,会弹出一个选项菜单,选择Add to Watch,在左侧Watch栏里将会列出这个变量和其值。

最后在看一下最终的目录结构。另外,还有更多的功能等待大家去发现,赶紧行动起来吧。

推荐器件

更多器件
器件型号 数量 器件厂商 器件描述 数据手册 ECAD模型 风险等级 参考价格 更多信息
TJA1042TK/3,118 1 NXP Semiconductors TJA1042 - High-speed CAN transceiver with Standby mode SON 8-Pin

ECAD模型

下载ECAD模型
$1.3 查看
ABS07AIG-32.768KHZ-1-T 1 Abracon Corporation CRYSTAL 32.768KHZ 12.5PF SMD

ECAD模型

下载ECAD模型
$1.9 查看
AFBR-5715APZ 1 Broadcom Limited Transceiver, 830nm Min, 860nm Max, 1250Mbps(Tx), LC Connector, Panel Mount, ROHS COMPLIANT
暂无数据 查看

相关推荐

电子产业图谱