Ubuntu下VSCode调试环境搭建指南-C语言篇

前言

  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还不太熟悉,在此就不进行演示了,仅提供一种思路。

原文地址:https://www.cnblogs.com/maxiaowei0216/p/12616087.html