| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> C++知识库 -> VS Code调试C代码 -> 正文阅读 |
|
[C++知识库]VS Code调试C代码 |
1、前言首先说明的是vscode是代码编辑器,并不是编译器,它本身并不能编译C语言。 在这里我们使用的是MinGW-w64作为C语言的编译器。MinGW-w64的前身是MinGW的全称是:Minimalist GNU on Windows。它实际上是将经典的开源 C语言 编译器 GCC 移植到了 Windows 平台下,并且包含了 Win32API ,因此可以将源代码编译为可在 Windows 中运行的可执行程序。 而且还可以使用一些 Windows 不具备的,Linux平台下的开发工具。一句话来概括:MinGW 就是 GCC 的 Windows 版本 。 我们这里使用的MinGW-w64是MinGW的升级版,MinGW只能编译32位程序,而MinGW-w64可以编译64位和32位程序。MinGW已经停止更新了,所以大家还是要使用MinGW-w64。 MinGW-w64推荐去官网下载:MinGW-w64 - for 32 and 64 bit Windows - Browse /mingw-w64 at SourceForge.net 1:下载绿色版,下载速度快 2:下载windows的安装版,一般情况下下载失败 所以演示绿色版的安装过程,绿色版只是需要添加环境变量,将绿色版解压到D盘根目录,如下 ?按步骤添加环境变量 ?测试MinGW-w64是否安装完毕 ?2、编译C代码下面将用MinGW-w64编译C代码,正如上文所说MinGW-w64就是gcc的windows版,所以直接就是gcc编译C代码。在D盘新建目录C,并在目录C中新建main.c文件,代码如下
这就是一个简单C程序。下面使用window的cmd编译并运行这个C程序。 ?使用windows的powershell编译也是一样的结果 3、vscode编译上面演示了如何使用MinGW-w64编译C代码,vscode只需要调用这些命令就可以编译C代码,那么vscode的插件就可以优雅的解决这个问题,code runner是一款优秀的编译插件。 ?因为我们的C代码使用了scanf,需要在终端输入所以需要使能code runner的Run In Terminal功能。 安装了这款插件,在右侧会出现一个运行按钮 点击这个运行按钮,就能编译并运行这个C代码。注意看下图1处,其实就是调用gcc的命令,和我们上面讲的一样。 类似的插件还有C/C++ Compile Run插件。 离开插件就不能编译???vscode当然可以自己调用gcc,自己完成代码的编译,选择运行->以非调试模式运行。这里我们只是编译C代码,然后运行,debug调试的问题,下面再说。 依次选择C++(GDB/LLDB)和C/C++: gcc.exe 生成活动文件 看到终端输出如下(下图我将两个终端并排显示,默认不是这样显示的) 这里可以看到,vscode运行了两个终端,一个编译C语言,一个运行C程序。并且产生了两个文件如下 launch.json作用是在C语言文件启动调试时提供配置参数 tasks.json是一个任务,用于编译C语言的 关于报错,下面制造了一个简单的错误,在终端中给出了出错的位置,这是gcc给出的错误,也就是导致编译不过的错误。 但下图的错误,是vscode认为你有错误,给你提示的,不是所有vscode报的错误gcc都会认为有问题的。并且vscode给出的错误一般与安装的插件有关。我们重点看gcc的错误。 4、多文件编译上面已经完成了C的编译和运行,但只是一个文件,正常情况下一般会有多个文件。 我们有以下源码来验证多文件编译。
首先使用code runner,运行结果如下 可以看出,code runner只编译main.c,编译报错找不到a.c中的printHello函数。修改code runner的扩展配置Excutor Map,单击前面的小齿轮,选择:将设置复制为JSON文本 然后单击在settings.json中编辑 打开文件如下settings.json 其中的一句代码是我们配置使能runInTerminal的,将我们刚刚复制的粘贴到它的下一行 注意1处需要添加一个逗号,并将2处的$fileName修改为*.c,如下 保存文件,返回main.c,执行code cunner的运行按钮,可以看到执行gcc的编译时,编译所有的c源文件。 看到这里,大家应该就理解了配置文件和执行的gcc命令之间的关系了。 对于上文提到的vscode自己也可以编译的问题,不使用插件如何编译多个文件?上文提到task.json是编译C程序的,它的配置如下 同理将1处的${file}修改为*.c就可以编译多个C文件了。这里就不再演示了。 5、调试调试是很简单的,在调试之前需要保证编译时没有问题的(虽然这句话像是废话)在其他IDE中你可以直接debug调试,但在VScode中,建议你先编译,首选保证编译过了。因为vsode的编译环境是配置的,可能出现问题,如果编译不通过那就更不能调试了。 编译通过的程序,选中main.c直接选择运行->启动调试。 剩下的就和普通的IDE没有大的差异了 1:自动查看变量 2:手动查看变量 3:调用的堆栈信息 4:可以和其他IDE一样打断点 5:分别是运行,单步,进入函数,跳出函数,复位,停止等常见的调试按钮 6:终端交互界面 点击查看本文所在的专辑:开发工具 |
|
C++知识库 最新文章 |
【C++】友元、嵌套类、异常、RTTI、类型转换 |
通讯录的思路与实现(C语言) |
C++PrimerPlus 第七章 函数-C++的编程模块( |
Problem C: 算法9-9~9-12:平衡二叉树的基本 |
MSVC C++ UTF-8编程 |
C++进阶 多态原理 |
简单string类c++实现 |
我的年度总结 |
【C语言】以深厚地基筑伟岸高楼-基础篇(六 |
c语言常见错误合集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 3:11:12- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |