Vseelove
2020-03-26 13:14
max.h :
int max(int a,int b);
main.c:
#include <stdio.h>
//#include"max.h"
int main()
{ int a = 21;
int b =12;
int num = max(a,b);
printf("max value = %d\n",num);
}已经生产了 max.o 并编译
gcc max.o main.c -o main
warning: implicit declaration of function ‘max’
不能直接干呀。
但是提示完后,成功编译出 “main” 程序。
已经解决:
当主体文件 没有声明时(即没有包含的头文件)就会报错;对其的一些**猜测**:
#include <stdio.h>
//#include"max.h"
int main(){ int a = 21; int b =12; int num = max(a,b); printf("max value = %d\n",num);}max.h ↓
int max(int a,int b);
max.c ↓
int max(int a,int b)
{ if(a>b){
return a;
}else{
return b;
}
}没有包含头文件,也就是没有声明函数,但之前进行 了 compile and assemble. 生成 max.o 文件
gcc max.c -c -o max.o
于是
gcc max.o max.c -o outfile
gcc main.c max.o -o out
警告提示:warning: implicit declaration of function ‘max’
但成功生成 文件 out
以上是没有 定义 函数。
如果导入 头文件 (定义了 max 函数),或着直接在 main 中定义max函数,再和 *.o 文件 链接编译,
gcc main.c max.o -o out
就不会出现 警告和错误。
Linux C语言编程基本原理与实践
204645 学习 · 469 问题
相似问题