【发布时间】:2018-06-06 07:15:58
【问题描述】:
我有两个 C 文件 9.c ,10.c.
9.c
#include <stdio.h>
int b=6;
int main()
{
fun1();
printf("%d\n",b);
}
extern int b;
10.c
void fun1()
{
printf("%d\n",b);
b=8;
}
我做了 gcc 9.c 10.c 但它给出了以下错误:
10.c:3: error: 'b' undeclared (第一次在这个函数中使用)
我原以为链接器会解析 b 的定义,但为什么它没有解析。
【问题讨论】:
-
那不是链接器在抱怨,那是编译器。你还没有在
10.c中声明b。 -
链接只是编译过程的一部分,编译过程分为四个阶段:1)预处理2)编译3)汇编4)链接
-
编译器错误
标签: c