commands commence before first target. 报错

来源:互联网 发布:exchange邮箱域名 编辑:程序博客网 时间:2024/06/05 19:30

  在写好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");
}


0 0
原创粉丝点击