在写好makefile 文件后 用make -f filename 命令进行编译的时候报错
原因是makefile 格式不正确。
改正后的写法:
myapp: main.o 2.o 3.o
gcc -o myapp main.o 2.o 3.o
main.o: main.c a.h
gcc -o main.c
2.o: 2.c a.h b.h
gcc -o 2.c
3.o: 3.c b.h c.h
gcc -o 3.c
要求是在写依赖关系的时候,要先写目标的名称,紧跟着一个冒号(:),接着是空格或者是制表符(tab),最后用空格或者制表符分割文件列表。
之后再进行编译通过。
运行文件:
更新b.h 头文件
会更新包含了b.h头文件的部分
删除 2.0
会重新的生成2.o 并更新需要用到2.o的地方
源代码:
main.c
#include <stdio.h>
#include <stdlib.h>
#include "a.h"
extern void function_two();
extern void function_three();
int main(){
printf("hello world main ! \n");
function_two();
function_three();
}
2.c
#include <stdio.h>
#include "a.h"
#include "b.h"
void function_two(){
printf("hello world fun 2 ! \n");
}
3.c
#include <stdio.h>
#include "b.h"
#include "c.h"
void function_three(){
printf("hello world fun three ! \n");
}