Makefile简单使用的例子

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 hello
main.o:main.c hello.h
    gcc -c main.c -o main.o
hello.o:hello.c
    gcc -c hello.c -o hello.o
clean:
    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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值