在VSCode上安装C\C++扩展
- 在扩展一栏里面搜索C\C++,然后点击安装即可:
- 在C\C++扩展中进行配置:
ctrl+shift+P快捷键,然后输入“ui”即可找到该选项。
在C\C++扩展的UI界面配置编译器位置,以及合适的IntelliSence模式:
下载WinGW-w64
- 下载网址:https://sourceforge.net/projects/mingw-w64/files/mingw-w64/
- 文件区别:
文件清单
x86_64-posix-sjlj
x86_64-posix-seh
x86_64-win32-sjlj
x86_64-win32-seh
i686-posix-sjlj
i686-posix-dwarf
i686-win32-sjlj
i686-win32-dwarf
释义1:
- DWARF:一种带调试信息(DWARF- 2(DW2)EH)的包, 所以比一般的包尺寸大,仅支持32位系统
- SJLJ:跨平台,支持32,64位系统,缺点是:运行速度稍慢,GCC不支持
- SEH: 调用系统机制处理异常,支持32,64位系统,缺点是:Gcc不支持(即将支持)
释义2:
- x86_64: 简称X64,64位操作系统
- i686: 32位操作系统 (i386的子集),差不多奔腾2(1997年5月)之后的CPU都是可以用的;
释义3:
- posix: 启用了C++ 11 多线程特性
- win32: 未启用 (从时间线上正在尝试也启用部分 Threading)
区别:
- DWARF DWARF- 2(DW2)EH ,这需要使用DWARF-2(或DWARF-3)调试信息。 DW-2 EH可以导致可执行文件略显膨胀,因为大的调用堆栈解开表必须包含在可执行文件中。
- setjmp / longjmp(SJLJ)。基于SJLJ的EH比DW2 EH慢得多(在没有异常时会惩罚甚至正常执行),但是可以在没有使用GCC编译的代码或没有调用堆栈的代码上工作。
- 结构化异常处理(SEH) (Structured Exception Handling)Windows使用自己的异常处理机制。
**注:上述对WinGW各种文件的解释来源于:https://www.pcyo.cn/linux/20181212/216.html **
- 选择合适的文件(离线安装的更快)下载,然后解压缩,并且将解压缩的地址下的bin目录添加到环境变量中:
- 检测是否安装成功 ( 在CMD中测试 ):
g++ --version
gdb --version
创建C\C++文件
在VSCode中关联一个工作目录(文件夹),该路径下会自动生成.vscode目录。创建一个cpp文件,在其中写一个hello world!
的代码:
#include<stdio.h>
#include<stdlib.h>
int main(){
printf("hello world!");
system("pause");
return 0;
}
注意:这里添加 #include<stdlib.h> 和 system(“pause”); 是为了防止VScode弹出的控制台闪退
按F5可以运行文件,并且在.vscode下应该有三个文件:launch.json、 c_cpp_properties.json、 task.json
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": "${fileDirname}",
"environment": [],
"externalConsole": true, // 此处默认为false不弹出控制台窗口,修改为true,使其弹出控制台窗口
"MIMode": "gdb",
"miDebuggerPath": "F:\\MinGW\\bin\\gdb.exe",
"setupCommands": [
{
"description": "为 gdb 启用整齐打印",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": "C/C++: g++.exe 生成活动文件"
}
]
}
在launch.json文件中,把midebuggerpath改成dbg的路径,dbg在MinGW安装路径下的bin文件夹中,然后将"externalConsole": false
的值建议改成true,这个是运行的时候会不会弹出黑框,默认是不弹出。
测试文件运行成功之后显示(F5运行):
到这里就可以正常运行了!!
进度更新:
后面又开了一个项目,然后发现需要重新配置,而且目录下的.vscode中的launch.json文件中的配置是空的,点击添加配置中的选项和原来的有一些区别,并且之前更改过的值还需要重新配置。到这里我问了个大佬,然后给我了这篇文章:https://zhuanlan.zhihu.com/p/92175757?utm_id=0,写的很是详细,简单来说下载Native Debug扩展就可以搞定:
试了一下,非常好用!!!感觉前面的都白折腾了!!