linux应用开发-makefile

linux应用开发-makefile
一 makefile

工程管理文件,编译成复杂的程序

组装程序

二 规则

1 文件名称:全部小写makefile或者首字母Makefile大写,其他的都不行

2 文件里面#代表注释

三 编写

makefile由许多条规则组成
规则:依赖项
    (前面留一个tab)命令
hello:main.o 1.c 2.c
    gcc main.c 1.c 2.c -o hello

1 自定义变量:MOBJ= main.c相当于宏 test: $(MOBJ)

2 预定义变量:系统默认的变量CFLAGS = -g -c CC = gcc

3 自动变量:
$*不包含扩展名的目标文件名称
$<第一个依赖文件名称
$?所有时间戳比目标文件晚的文件
$@目标文件完整名称
$^所有不重复的依赖文件gcc $^ -o $@

4 伪目标

.PHONY: install

即便当前文件夹内有install文件,也不执行

5 命令前面加上@符号,make的时候就不会输出信息:@gcc main.c 1.c 2.c -o hello

6 makefile的包含和嵌套

包含:#include testmk.mk

嵌套:gcc -c main.c -C submkdir

7 条件判断

前面不空Tab
if 

else 

endif


 
8 makefile管理命令

-C dir读入指定文件夹dir下的makefile

-f file读入当前目录下的file为makefile

-i 忽略所有的错误信息

-l dir指定包含makefile的文件的目录

四 makefile常见问题

1 output不仅仅一个:用多个makefile文件,相互include嵌套或者使用伪目标

2 源文件或者依赖文件很多:makefile分开多文件或者分级

3 嵌套执行makefile:使用-C dir参数来指定读取makefile的目录

五 常见变量
技术分享
自己写的小程序
技术分享

技术分享




郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。