1. 引言
C开发中,通常需要编译多个文件,本文将简要介绍在VS Code中进行C开发时如何编译多个文件。实例工程结构如图所示:
其中,main.c
文件内容如下:
#include "stdio.h"
/* Includings */
#include "umath.h"
#include "ucmplx.h"
int main(void)
{
/* Test umath.c */
float x = 1.21F, y;
y = 1.0F / umath_invsqrt(x);
printf("y = %F\r\n", y);
/* Test ucmplx.c */
float re1 = 2, im1 = 0, re2 = 1, im2 = 9, re, im;
ucmplx_add(&re, &im, re1, im1, re2, im2);
printf("(%F + %Fi) + (%F + %Fi) = %F + %F\r\n", re1, im1, re2, im2, re, im);
return 0;
}
umath_invsqrt
函数定义在umath.c
中,ucmplx_add
函数定义在ucmplx.c
中。
2. 开发环境
在VS Code中通常可以采用两种开发工具链:
-
Microsoft C++:该工具链的安装和配置参考《Configure VS Code for Microsoft C++》;
-
GCC:该工具链的安装和配置参考《Using GCC with MinGW》。
3. Microsoft C++
3.1 生成所需文件
点击Run and Debug
,
选择C++ (Windows)
,
选择cl.exe
作为编译器(Compiler),
此时不出意外的会报错,
选择Abort
即可。
3.2 修改tasks.json文件
经过上述操作,在.vscode
文件夹中会出现tasks.json
文件,打开该文件,在args
中添加如下内容:
"-g", "${workspaceFolder}\\*.c",
"-g", "${workspaceFolder}\\ucmplx\\*.c",
"-I", "${workspaceFolder}",
"-I", "${workspaceFolder}\\ucmplx",
并注释掉如下内容:
// "${file}",
如下图所示:
根据相关博文,个人对上述内容的解读如下:
-
"-g"
用于添加源文件路径,类似于在IDE中添加Source Folder; -
"-I"
用于添加源文件的头文件,类似于IDE中设置Include Path。
3.3 编译链接并运行
再次点击Run and Debug
,
在Terminal
中输出程序运行结果。
4. GCC
4.1 生成所需文件
以下给出另一种生成tasks.json
文件的方法。点击“小齿轮”,
选择gcc.exe
作为编译器(Compiler),
经过上述操作,在.vscode
文件夹中会出现tasks.json
文件。
4.2 修改tasks.json文件
打开tasks.json
文件,在args
中添加如下内容:
"-g", "${workspaceFolder}\\*.c",
"-g", "${workspaceFolder}\\ucmplx\\*.c",
"-I", "${workspaceFolder}",
"-I", "${workspaceFolder}\\ucmplx",
并注释掉如下内容:
// "-g",
// "${file}",
如下图所示:
4.3 编译链接并运行
点击此即可,
选择gcc.exe
作为编译器(Compiler),
同样在Terminal
中即可查看程序运行结果。
参考文献
[1] 萧筱姐姐. windows上实现vscode编译多个c源文件. 2023.11.16. https://zhuanlan.zhihu.com/p/419473501
标签:文件,Code,tasks,ucmplx,源文件,编译,json,VS,workspaceFolder From: https://www.cnblogs.com/zysgy/p/17837404.html