openKylin论坛

标题: make命令简单认识 [打印本页]

作者: kylin_try    时间: 2013-7-17 08:04
标题: make命令简单认识
make的使用
1.make基本使用规则
make在使用时可以根据一系列预先设定的规则来运行。这些设定的规则可以记录在一个文件中,默认该文件的名字是Makefile。
make的使用形式为:
make [option] [macrodef] [target]
option指出make的工作行为,make的主要选项有:
-c dir     make在开始运行后的工作目录为指定目录
-f filename      使用指定的文件作Makefile
在make运行时,会向屏幕输出一些信息。为了记录这些信息,可以使用如下命令:
make file > errofile
这样错误信息就都写入了errofile,可以使用编辑软件查看。
2.Makefile的基本书写规则
make运行时,主要根据规则文件中记录的规则来判断是否对文件进行更新。例如,工程newos依赖于main.o, f1.o, f2,而main.o依赖于main.c和main.h, f1.o依赖于f1.c和f1.h,f2.o依赖于f2.c。
下面是一个newos工程的Makefile
newos:main.o f1.o f2.o
gcc -o example main.o f1.o, f2.o
mian.o: main.c main.h
gcc -c main.c
f1.o: f1.c f1.h
gcc -c f1.c
f2.o:f2.c
gcc -c f2.c
以上是一个简单的Makefile文件,make除了上述的简单的功能外,make还有大量高级功能,例如属性变量,宏变量,流程控制等,
3 宏的使用
在make中宏的命名可以是任意数字、字母和下划线的组合,不过不能用数字开头。make中宏的定义方式有3中:
=:直接将后面的字符串赋给宏
=:后面跟字符串常量,将它的值赋给宏
+=:宏原来的值加上一个空格,将它的内容赋给宏
宏的引用格式有两种:$(宏名)或${宏名}。宏名也可以嵌套使用,如:
name2 = uestc
index = 2
在Makefile中调用$(name$(index)),就等于调用uestc。
在make中也可以使用shell 环境的宏,不需要重新定义,只要用IMPORT就行了

作者: 星际快车    时间: 2013-7-17 18:05
收藏啦!感谢楼主




欢迎光临 openKylin论坛 (https://forum.openkylin.top/) Powered by Discuz! X3.3