前言
windows下有很多免费的开发C语言的IDE,比如微软自家的Visual Studio社区版,开源的code::blocks(自带mingw)等等,没必要再单独下载mingw折腾调试环境搭建,使用现有方案简单快捷得多,还不容易出错。而在linux系统下,相关的IDE就少了很多,前面提到的code::blocks是其中之一,但是它的编辑器使用起来却不太方便,因此还是选择使用VSCode来搭建调试环境。
1. 安装官方C/C++扩展
当使用VSCode打开一个C文件时,编辑器会自动提示安装相应的扩展,当然也可以手动搜索。在主界面按下Ctrl+Shift+X,在搜索栏中输入"c",出来的第一个即为需要安装的插件。
2. 修改调试模板文件
想要调试源代码文件,我们需要创建或者生成tasks.json和launch.json文件,关于如何自动生成这两个文件,可以参考callback接口(https://www.cnblogs.com/maxiaowei0216/p/12518468.html)中关于调试部分的内容。tasks.json文件帮助我们自动在终端中输入gcc指令,编译输出可运行文件的,而launch.json文件则是启动gdb程序进行调试的。
对于只有一个c源文件的工程,使用默认的模板文件即可进行调试和运行。但是大部分的工程显然不可能只有一个源文件,这就需要对tasks.json文件进行修改。
以一个简单的工程为例,其目录结构如下图所示:
其中,hello.c中包含了main函数,在其内部引用了habc.h中声明的函数,此函数在habc.c中进行定义。那么,由于hello.c中有对habc.c的依赖,需要编译这两个源文件。所以在tasks.json中将habc.c加入到需要编译的文件列表中,其修改后的内容如下:
1 { 2 // See https://go.microsoft.com/fwlink/?LinkId=733558 3 // for the documentation about the tasks.json format 4 "version": "2.0.0", 5 "tasks": [ 6 { 7 "type": "shell", 8 "label": "gcc build active file", 9 "command": "/usr/bin/gcc", 10 "args": [ 11 "-g", 12 "${file}", // -o参数前填入需要编译的文件 13 "${fileDirname}/habc.c", //编译habc.c文件 14 "-o", 15 "${fileDirname}/${fileBasenameNoExtension}" 16 ], 17 "options": { 18 "cwd": "/usr/bin" 19 }, 20 "problemMatcher": [ 21 "$gcc" 22 ], 23 "group": "build" 24 } 25 ] 26 }
3. 编译及调试
按下Ctrl+Shift+B 即会根据tasks.json中的定义进行编译,如果没有出错,随后即可按下F5进入调试界面。
4. 进阶
如果项目很大,有很多的源文件,显然不可能在tasks.json中为每个源文件添加一行代码,不仅麻烦还很容易出错。这时候就可以使用make工具,根据项目中的makelist来有选择的进行编译。因此,只需要修改tasks.json,将"command"变量改成make的路径,"args"中加上其对应的参数即可。由于本人对make还不太熟悉,在此就不进行演示了,仅提供一种思路。