VS Code是一款支持多种编程语言的跨平台源代码编辑器,正在被越来越多的程序员使用。今天我们介绍一下如何在VS Code上构建C/C++ 的构建、调试环境。
直接去VS Code官网https://code.visualstudio.com/下载与自己系统相对应版本的VS Code。
VS Code并没有内置编译器,所以想要正常运行代码还需要单独编译器,而我所使用Windows 10系统也没有安装编译器,所以需要单独下载、安装。
可以在这个地址https://sourceforge.net/projects/mingw-w64/files/下载最新版本的x86_64-posix-seh
下载完成之后解压到自己想要的位置,然后把~/mingw64/bin加入环境变量中的系统变量PATH中。
添加完成后,win+R并输入cmd运行命令行,输入gcc -v可以看到gcc的版本信息。若提示“不是内部或外部命令”,则说明没有成功把~/mingw64/bin目录加入PATH系统变量中。
在VS Code的插件中搜索C/C++,安装该插件即可。
使用Code Runner插件可以直接编译运行代码,不需要手动输入指令。可以直接在VS Code拓展中搜索安装。安装过后可以点击右上角的三角符号运行代码,或者Ctrl+Alt+N运行,或者右键—>Run Code运行。
首先在一个没有中文的路径下创建一个存放代码的目录,也就是工作区文件夹。然后在该目录下创建一个名为.vscode的子文件夹,并在.vscode目录下新建3个.json文件,.json文件具体内容如下。
{ "version": "0.2.0", "configurations": [ { "name": "C/C++", "type": "cppdbg", "request": "launch", "program": "${fileDirname}/${fileBasenameNoExtension}.exe", "args": [], "stopAtEntry": false, "cwd": "${workspaceFolder}", "environment": [], "externalConsole": false, "MIMode": "gdb", "miDebuggerPath": "D:/Program Files/mingw-w64/x86_64-8.1.0-posix-seh-rt_v6-rev0/mingw64/bin/gdb.exe", //这里填写自己gdb所在的路径 "preLaunchTask": "g++", "setupCommands": [ { "description": "Enable pretty-printing for gdb", "text": "-enable-pretty-printing", "ignoreFailures": true } ], }, ] }
{ "version": "2.0.0", "command": "g++", //C语言需改成gcc "args": [ "-g", "${file}", "-o", "${fileDirname}/${fileBasenameNoExtension}.exe" ], "problemMatcher": { "owner": "cpp", "fileLocation": [ "relative", "${workspaceRoot}" ], "pattern": { "regexp": "^(.*):(\\d+):(\\d+):\\s+(warning|error):\\s+(.*)$", "file": 1, "line": 2, "column": 3, "severity": 4, "message": 5 } }, "group": { "kind": "build", "isDefault": true } }
以一个简单的程序hello.cpp的调试、运行为例。hello.cpp代码如下:
//hello.cpp #include <iostream> using namespace std; int main() { int i,j,k; k=0; i=3; j=4; k=i+j; cout<<k; return 0; }
在“k=i+j;”行添加断点(直接在该行左侧单击即可),F5进入调试:
左边栏第一个单元显示变量名及其值,第二个单元可以自定义监视的内容,第三个单元显示调用堆栈。我们这里监视k的值,此时为0。F11进行单步调试:
可以看到,执行“k=i+j;”后,k值变为7。继续单步执行:
可以看到中断输出7,也就是“cout<<k;”的执行结果。继续F11直至程序结束。
这样,我们完成了hello.cpp的调试、运行,过程还是很简单的。
原文:https://www.cnblogs.com/sfnevermore/p/12622081.html