程序在链接文件时报错 ;显示函数"sum"的隐式声明在C99中无效

C :程序在链接文件时报错 ;显示函数"sum"的隐式声明在C99中无效

有三个文件

main.c
#include
#include "sum.h"
int main()
{
int a = 1;
int b = 2;
int r = sum(a, b); // 调用sum
printf("%d", r);
return 0;
}

//函数定义

sum.c
#include
int sum(int a, int b)
{
int re = a + b;
return re;
}

//函数声明

sum.h
int sum(int, int);


###### 运行结果及报错内容 


>>main.c执行结果
error: implicit declaration of function 'sum' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
    int r = sum(a, b);

??为什么显示函数"sum"的隐式声明在C99中无效呢
我明明定义了sum函数,并且在main函数前引入了该头文件


###### 我的解答思路和尝试过的方法 


很神奇(因为我不太懂)

1. 刚开始时报的是这个错误

> Undefined symbols for architecture x86_64:
  "_sum", referenced from:
      _main in main-261b4d.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)


2. 我尝试手动链接
gcc -c sum.c main.c
gcc sum.c main.c -o main.out
gcc ./main.out


3. 成功了


4. 但是 不知怎么(不懂)直接运行时(非手动),开始报了这个错误


5. >>main.c执行结果
error: implicit declaration of function 'sum' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
    int r = sum(a, b);

**现在 手动操作失败,直接执行报上面的错误**

###### 我想要达到的结果
我想让main.c成功执行




换个名称试试

sum是关键字,换个名字

在你的sum.c 中,加上头文件 #include "sum.h"