我刚刚开始使用vscode,
今天写了两个.c文件test1.c和test2.c,如下图所示,他们在同一个文件夹下面
其中test1.c里面的代码是这样的
#include<stdio.h>
extern int a2;//引用在test2.c中定义的变量a2
int main()
{
printf("%d\n",a2);
return 0;
}
test2.c的代码是这样的
int a2=27;
代码非常简单,目的就是测试这个extern关键字能不能引用到外部变量
但是这么简单的代码,竟然出错了
报错的原因是
说a2未定义
我就纳闷了,这么简单的代码还能出错,
后来通过查资料发现,报错的原因是vscode默认只能对单文件编译,也就是说,我这两个文件test1.c ,test2.c,其实值编译了test1.c,test2.c根本就没有编译,所以在test2.c里面定义的变量,int a2=22 没法访问。
既然问题的原因是vscode默认是单文件编译,那么应该如何修改成多文件编译呢?:
修改vscode多文件编译的方法:
搜索 code runner
把gcc后面的$fileName改成 *.c
就可以编译所有的.c文件了,