我在同一个文件夹中有两个C文件:
文件1.c
#include <stdio.h>
int a;
int main()
{
a = 1;
printf("%d",a);
return 0;
}
file2.c
#include <stdio.h>
extern int a;
int main()
{
a = 1;
printf("%d",a);
return 0;
}
我在 vscode 上运行 file2.c 及其返回:
C:/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/12.1.0/../../../../x86_64-w64-mingw32/bin/ld.exe:C:\Users\Duong\AppData\Local\Temp\cc8Tiaj4.o:file2.c:(.rdata$.refptr.a[.refptr.a]+0x0): undefined reference to `a'
collect2.exe: error: ld returned 1 exit status
我尝试了很多方法,包括添加头文件,但根本不起作用。
有人可以告诉我我的代码或编译器是否有任何问题
main
函数,因此证明您没有将它们链接在一起。文件1.c
#include <stdio.h>
int a;
file2.c
#include <stdio.h>
int main()
{
a = 1;
printf("%d",a);
return 0;
}
然后从命令行编译并链接它们
gcc -o main file1.c file2.c
Visual Studio 代码不适合初学者,因为它需要一些配置并了解其工作原理。
安装 Eclipse CDT,它可以毫无问题地为您管理项目