通用makefile讲解

转载地址:http://bbs.chinaunix.net/thread-3553668-1-1.html


1、关键变量含义

CROSS_COMPILE:交叉编译前缀

OPTIMIZE:关于优化的编译参数

WARNINGS:关于warning的编译参数

DEFS:关于宏定义的编译参数

EXTRA_CFLAGS:其他编译参数

$(OPTIMIZE)$(WARNING)$(DEFS)$(EXTRA_CFLAGS):共同构成了传给gcc的编译参数:



INC_DIR:头文件目录

SRC_DIR:源文件目录(当前目录,是被默认包含的)

OBJ_DIR:object文件的输出目录

EXTRA_SRC:源文件目录

EXCLUDE_FILES:exclude 文件列表


SUFFIX:源文件的后缀名

TARGET:最终的目标程序名

TARGET_TYPE:目标程序的类型:可以定义为ar:static library,so:shared library,和app:application,可执行文件


最终Makefile的行为是:

在$(SRC_DIR)定义的每个目录中查找后缀为$(SUFFIX)的文件,并加上$(EXTRA_SRC)中的文件,然后排除掉$(EXCLUDE_FILES)中的文件,获得本工程定义的源文件列表;对于每一个源文件,编译生成的一个.o文件和一个.d文件(依赖文件),放在$(OBJ_DIR)目录下,最终生成的目标文件为$(TARGET)。


此Makefile已经充分考虑文件之间的依赖关系,即,如果某个头文件发生改变,当运行make的时候,所有依赖于它的源文件将重新被编译。











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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值