Makefile简单使用的例子

来源:互联网 发布:gvim python 编辑:程序博客网 时间:2024/06/07 08:16

Makefile简单使用的例子

首先,向大家解释一下Makefile,在使用Make程序自动编译所有的内核代码文件,就必须有一个名称为Makefile(或makefile)的文件。这个文件的名字可以有别的写法,需要利用make的“-f “或“–file”参数,例如:make -f hello,但一般不提倡使用其他命名。

Makefile里面主要包含5个元素:
1、显式规则
说明如何生成一个或多个目标文件,包括要生成的文件,文件的依赖文件,生成的命令。
2、隐含规则
make程序具有自动推导的功能,利用隐含规则可以简略地书写Makefile文件。
3、变量的定义
变量一般为字符串,类似于C语言中的宏(#define),当Makefile被执行时,其中的变量会被扩展到引用的位置上。
4、文件指示
①在一个Makefile中引用另一个Makefile,就像C语言中的include一样。
②根据某些情况指定Makefile中的有效部分,就像C语言中的预编译#if一样。
③定义一个多行的命令。
5、注释
仅有行注释,字符:#,就像C语言中的//一样。

Makefile里的主要规则:
1、基本格式
target(目标):prerequisites(先决条件)
command(命令)
2、文件的依赖关系
target是需要生成的一个或多个文件,它们依赖于 prerequisites中列出的文件,通过执行command来生成target。
3、一个规则可以有多个命令行,每一条命令占一行。
注意:每一个命令行必须以[Tab]字符开始,[Tab]字符告诉 make 此行是一个命令行。

Make程序的适用场合是多个文件组成的软件项目。

下面以一个简单的hello world程序为例进行说明:
Makefile文件内容:

helloworld:hello.o main.o    gcc hello.o main.o -o hellomain.o:main.c hello.h    gcc -c main.c -o main.ohello.o:hello.c    gcc -c hello.c -o hello.oclean:    rm -rf *.o helloworld

特别注意:执行命令之前一定要使用Tab键,而不能使用几个空格代替,不然会出现编译错误。[Tab]字符告诉 make 此行是一个命令行。
hello.h :

int hello (void); //声明函数

hello.c :

include <stdio.h>int hello (void){    printf(" Hello world!\n");    return 0;}

main.c :

include "hello.h"int main(void){    return hello();}

文件编写完成之后,直接在linux的命令窗口执行make命令即可。

文章难免有不足之处,要是有错误的地方大家就凑活看吧。

0 0