Linux基础学习(项目自动化构建工具-makeMakefile)

Linux项目自动化构建工具-make/Makefile

基础知识:

- 引入makefile的好处:“自动化编译”,为提高软件开发效率
- make是一格命令工具,是一个解释makefile中指令的工具,例如Delphi的make,Visual C++的nmake,Linux下GNU的make。
- make是一条命令,makefile是一个文件。

实例:

Makefile文件:

在这里插入图片描述

Makefile文件另一种表示:

在这里插入图片描述

mycode.c文件:

在这里插入图片描述

依赖关系:

上面的文件:mycode依赖mycode.o

mycode.o依赖mycode.s

mycode.s依赖mycode.i

mycode.i依赖mycode.c

依赖方法:

gcc mycode.* - option mycode.* 与之对应的依赖关系

工作原理:

1. make 会在当前路径下寻找名字叫“Makefle”或“makefile”的文件

2. 如果找到,它会找文件中的第一个目标文件(target),上述实例会找到mycode作为最终的文件

3.  如果hello文件不存在,或是mycode所依赖的后面的mycode.o文件的文件修改时间要比hello这个文件新(可以用 touch 测试),那么,他就会执行后面所定义的命令来生成mycode这个文件。

4. 如果mycode所依赖的mycode.o文件不存在,那么make会在当前文件中找目标为mycode.o文件的依赖性,如果找到则再根据那一个规则生成mycode.o文件。(这有点像一个堆栈的过程)

5. 当然,你的C文件和H文件是存在的啦,于是make会生成 mycode.o 文件,然后再用 mycode.o 文件声明make的终极任务,也就是执行文件mycode了。

6. 这就是整个make的依赖性,make会一层又一层地去找文件的依赖关系,直到最终编译出第一个目标文件。

7. 在找寻的过程中,如果出现错误,比如最后被依赖的文件找不到,那么make就会直接退出,并报错,而对于所定义的命令的错误,或是编译不成功,make根本不理。

8. make只管文件的依赖性,即,如果在我找了依赖关系之后,冒号后面的文件还是不在,那么对不起,我就不工作啦。

工作原理

make扫描makefile文件时,默认会生成一个目标依赖关系,一般是第一个。如果目标文件没有修改,则不需进行make

erro

如果出现上述问题:**'mycode' is up to date** 进行项目清理,即可解决

项目清理:

利用 make clean实现清理

项目清理

clean:总是可以被执行的
                                       越努力,越幸运!
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值