码迷,mamicode.com
首页 > 系统相关 > 详细

linux应用开发-makefile

时间:2015-05-08 16:33:48      阅读:160      评论:0      收藏:0      [点我收藏+]

标签:makefile   linux   gcc   

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的目录

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

技术分享




linux应用开发-makefile

标签:makefile   linux   gcc   

原文地址:http://blog.csdn.net/qq_22075977/article/details/45581303

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!