工程管理器MAKE的补充

MAKE 
     工程概念 不同的C文件在不同的目录实现不同的功能
   tree 可以树的方式查看当前目录的所有文件      
   make                    批处理
   工程管理器    实现      自动编译       在脚本文件时有提到过批处理
makefile 文件 帮助make编译项目源代码   如何编译的逻辑
makefile 的三元素
  目标:依赖
   命令
比如  文件夹下已有 hello.c 此文件
  makefile 文件内容
hello:hell.o
 gcc hello.o -o hello
hello.o:hello.c
 gcc -c hello.c
.PHONY:clean    //生成伪目标
clean:
 rm -f hello.o hello   
    真目标会生成文件
                                伪目标只执行命令
make 命令  编译整个工程

make clean  会执行 rm -f hello.o hello 这条语句
make 目标题名  会把目标题名所在的那一行当作第一行执行
如果一个目录里有多个makefile文件
                    make -f makefile1  可指定某一个makefile文件
命令语句也变为      make -f makefile1 clean 形式


以功能目录存放源代码  .c文件
可以提高代码的可维护性
提高代码的可读性

一个项目包括3种makefile文件
总控          makefile
功能目录      makefile
头文件        makefile [scripts]目录下         

一般项目的结构:  拿计算器举例
   1 功能函数目录 : add sub mul div main 文件夹,每个文件夹下有一个Makefile文件和src文件夹,src文件夹存放.c文件
   2 scripts目录  scripts文件夹下存放头文件Makefile文件
   3  include lib tools doc 这些都是存放相关文档的目录
   4 总控Makefile
  这些目录的作用: 方便代码的维护管理。
  
   总控Makefile的作用  :  1 进入每个功能目录执行make命令
                           2 把每个功能目录里的.o文件链接生成可执行文件
   scripts文件夹下的Makefile文件作用 : 定义所有makefile中的变量。类似于C语言的头文件
   功能目录的Makefile的作用 : 把当前目录中的src目录下的.c文件编译成.o文件。
   在Makefile文件中注释用 # 符号

   为什么全都编译成 .o文件后再链接,而不直接生成可执行文件??。这样做的目的是省时 
   因为编译成.o文件后,即使在对相应的.c文件做改动后,用Makefile重新编译只对改动过后的.c文件(检查文件的时间戳)重新编译成.o文件,其它.c文件不重新编译成.o文件。重新链接即可生成可执行文件。如果直接生成可执行文件,那么如果对某一个.c文件做改动,再生成可执行文件,就要把全部的.c文件重新编译一遍,相比下,先生成.o文件比较省时。
   如果直接生成
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值