对于多文件的C项目,大部分人会选择使用'cmake'来管理编译过程,对于精力充沛的朋友来说,也可以学习一下使用这个强大的工具。
但我觉得如果只想在VS Code里写几行代码应对当前需求,没必要再去学习一个完全陌生的东西,也没必要把配置过程复杂化。
所以我接下来讲的配置多文件编译的过程并不涉及'cmake'。
目录模式
我将这种配置方式称为“目录模式”,跟Eclipse类似,每个目录作为一个项目。
在上一篇中我们讲了如何进行单文件的编译和调试,其中使用了VS Code提供的变量,以定位到当前文件。
同样地,我们只需要再使用VS Code提供的变量,定位到当前目录,再利用Linux Shell的通配符,即可匹配到当前目录下所有要编译的源文件。
gcc本身是支持多文件编译的,只需要把文件名作为参数即可。
配置好的tasks.json文件大致如下:
{
"version": "2.0.0",
"tasks": [
{
"type": "shell",
"label": "build(gcc)",
"command": "gcc",
"args": [
"-g",
"-o",
"/tmp/buildtempc",
"*.c" // 匹配所有源文件
],
"options": {
"cwd": "${fileDirname}" // 定位到当前目录
},
"group": {
"kind": "build",
"isDefault": true
}