makefile
来源:互联网 发布:支付宝解除淘宝绑定 编辑:程序博客网 时间:2024/06/06 10:46
前言
还是了解下编译的一些东西,之前一直在研究,可是总是不得要领,这里花两天时间好好研究下,毕竟这个知识点很少,学习以后万一看一些c代码,也是很重要的,
正文
这里我主要按照基本的原则一条一条的记录,不是对于完全零基础的阅读,并且这也没啥用,基本是自己业余爱好,作为我自己的一篇笔记。
2.1、基本结构
目标文件: 依赖文件 控制指令
目标文件可以是产生的文件,也可以是一个伪指令,依赖文件很关键,是控制是否需要解析依赖的文件更新的。控制指令就更加是bash指令,我们看个例子
maketest:maketest.c dependce.c dependce.h gcc -o maketest maketest.c dependce.c
maketest 是一个目标文件,如果这个maketest不是终极目标(相当于默认的操作,你可以理解成c语言中的main函数),我们需要执行 make maketest,才会执行这个操作,我们依赖文件有三个,假如我们去掉dependce.h,执行不会错,可是我们改变dependce.h,执行不会错,可是我们改变dependce.h,编译不会发生改动,这里理解依赖的意义了吧,控制指令我就不多解释,可以是所有的bash指令
2.2、函数
函数需要
$(wildcard *.c) //展开通配符的结果,也就是所有的以后缀为c的文件
2.3、变量
这个比较复杂,我们只要知道他就是一个替换就好了,这里没有声明,仅仅有定义。直接赋值,
主要有四种赋值方式
- object = dependce.c dependce.h
- object := dependce.c dependce.h
- object ?= dependce.c dependce.h
- object += dependce.c dependce.h
具体区别比较复杂,一般情况基本差不多,除了第四种,是在原有基础上又给添加一个部分,基本跟我们理解没有偏差,至于使用
$(变量名),就好了
2.4 include
阅读时候,当有些全局的东西,我们几个makefile可以引用同一个文件我们可以这样
include dependcefile
这里我认为主要包好一些变量,和定义一些依赖关系比较好,具体有啥特别好的功能暂时不了解。
2.5 条件编译
这里主要是ifeq、ifdef、ifneq、ifndef。
后记
写到这里其实我本人还是有些不太理解,不过看完一个makefile文件还是没太大问题。这里我想大家其实很有可能还是一头雾水。不过这里还是要去看官方文档最好
0 0
- Makefile
- Makefile
- makefile
- makefile
- makefile
- Makefile
- Makefile
- Makefile
- Makefile
- Makefile
- Makefile
- makefile
- Makefile
- makefile
- Makefile
- makefile
- makefile
- makefile
- http://blog.csdn.net/wangyoujin321/article/details/51472606
- Android自定义view实践(1)
- 文章标题
- AndroidStudio项目运行当中如何给项目添加debug模式
- MQTT协议实现Eclipse Paho学习总结一
- makefile
- vsftpd中这些配置都是什么意思?
- Charles Petzold《Code》----2017.1.6 读10章(非常精彩!)
- html less使用demo
- error_reporting可以设置的参数,
- 关于 Linux 下 JVM 故障分析
- device tree 内 default pinctrl 和 probe的先后顺序
- 微信小程序初体验
- ElasticSearch学习28_Elastic中国开发者大会2016介绍