makefile--工程管应用理器的简单

Makefile工程管理器

 

 

已有Addressbook.c main.c Addressbook.h 文件  

 

建立vim  Makefile 文件 //M要大写

Makefile具体内容

在终端是输入make   //相当于在终端输入gcc  Addressbook.c main.c

 

Makefile 文件相当于经历了 预处理、编译、汇编、链接这四个过程

 

每次在终端输入make ,只编译改动过的文件,如果未改动,在终端输入make 时会显示最新的,然后输入./a.out即可

 

 

//编译过程

1.预处理 (宏替换)

命令 gcc -E hello.c -o hello.i //一般用i,换成j也行

生成的hello.i 文件中 包括了 头文件#include <stdio.h>的内容

如果hello.c 中包括了#define PI 3.1415 ,那么生成的hello.i文件中的PI 都被替换为 3.1415

 

2.编译(生成汇编文件)

gcc -s hello.c -o hello.s

 

3.汇编(二进制文件)

 gcc -c hello.c -o hello.o

4.链接

gcc hello.c

.c文件中用到的函数例如printf()函数,要去函数库中找到匹配函数,生成可执行文件

 

 

//从下往上

Addressbook:  main.o  Addressb

ook.o

    gcc  main.o  Addressbook.o  -o  Addressbook  //连接

main.o :  main.c  AddressBook.h

    gcc  -c  main.c  -o  main.o

Addressbook.o :  AddressBook.c  AddressBook.h

gcc  -c  AddressBook.c  -o  AddressBook.o   

 

.PYONE: clean

clean:

 rm -rf *.o       //删除所有.o文件

 

 

 

 

 

 

1.  .PYONE: clean

   clean:

       rm -rf *.o

这三句加上可以删除所有.o文件

具体实现: 在终端上输入make  clean // make代表首先要找到是否有Makefile这个文件

 

 

 

 

2. Addressbook.o :  AddressBook.c  AddressBook.h

Addressbook.o是目标文件,AddressBook.c AddressBook.h 是源文件

 

 

3.Makefile 可以包含多个.c /.h文件,每个.c 以及这个.c文件里所包含的.h头文件都要写成源文件,然后生成目标文件 (如果该文件用到了数据库以及线程,则后面加上-lpthread  -sqlite3)

例如Addressbook.o :  AddressBook.c  AddressBook.h  -lpthread  -sqlite3

 

4. ./Addressbook 类似于./a.out

 

5.gcc /  rm -rf *.o前添的是tab键(不是空格)

 

6. //Makefile 文件 换名字

mv +Makefile+ newname //mv 剪切

make -f + newname 例如 make -f makefile1 //makefile1 文件替换了 Makefile文件

make -f makefile1  clean   //makefile1 文件的make clean命令

 

7带变量的Makefile

obj:  main.o  Addressbook.o    

Addressbook:$(obj)

 //带有变量可少写.o文件,使书写简洁

gcc  $(obj)  -o  Addressbook   

main.o :  main.c  AddressBook.h

    gcc  -c  main.c  -o  main.o

Addressbook.o :  AddressBook.c  AddressBook.h

gcc  -c  AddressBook.c  -o   AddressBook.o

 

.PYONE: clean

clean:

 rm -rf *.o       //删除所有.o文件

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值