C :程序在链接文件时报错 ;显示函数"sum"的隐式声明在C99中无效
有三个文件
main.c
#include <stdio.h>
#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 <stdio.h>
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成功执行