返回首页
当前位置: 主页 > 编程语言 > C/C++教程 >

makefile语法简介

时间:2014-02-26 23:15来源:电脑教程学习网 www.etwiki.cn 编辑:admin

1.makefile语法

由一组依赖关系和规则组成。

myapp: main.o 2.o 3.o

gcc -o myapp main.o 2.o 3.o

main.o: main.c a.h

gcc -c main.c

2.o: 2.c a.h b.h

gcc -c 2.c

3.o: 3.c b.h c.h

gcc -c 3.c

 

2. make命令参数和选项

-k:发现错误继续编译

-n:输出要执行的步骤但不执行

-f:指定makefile的名字

 

3.注释

以#开头

 

4.宏

通过语句 MACRONAME=value 定义

引用方法为 $(MACRONAME) 或 ${MACRONAME}

一些特殊的内置宏:

$? 列出当前目标所依赖的文件列表中比当前文件还要新的文件

$@ 当前目标的名字

$< 当前依赖文件的名字

$* 不包括后缀名的当前依赖文件的名字

 

5.多个目标

建议在makefile开始处定义all,如:

all: myapp

使用shell命令时:在每行末尾加"\"


 

两个特殊符号的作用:

-: 告诉makefile忽略所有的错误

@: 告诉make在执行某条命令前不该将命令本身输出到标准输出,有输出时用:echo

两个shell命令之间如果有"与关系",中间加"&&"

 

6.内置规则

 

7.后缀和模式规则

%.cpp: %o

$(CC) -xc++ $(CFLAGS) -I$(INCLUDE) -c $<

 

8.归档文件(静态库)

$(MYLIB): $(MYLIB)(2.o) $(MYLIB)(3.o)

$(AR) $(ARFLAGS) $@ $<

 

9.子目录

mylib.a:

(cd mylibdirectory;$(MAKE))

或者

mylib.a: mydir/2.o mydir/3.o

ar -rv mylib.a $?

 

10.创建依赖关系

gcc -MM main.c 2.c 3.c

顶一下
(0)
0%
踩一下
(0)
0%
标签(Tag):makefile
------分隔线----------------------------
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
验证码:点击我更换图片
推荐内容