Makefile简单使用的例子
2016-10-09 17:46
190 查看
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命令即可。
文章难免有不足之处,要是有错误的地方大家就凑活看吧。
相关文章推荐
- 使用makefile的简单例子
- Makefile简单使用的例子
- 在MFC下使用OpenGL的一个简单的例子
- 举一个简单例子来说明:如何在JSP中使用JavaBean
- Linux/Unix下使用rsync同步文件(简单的例子)
- SAP ABAP/4学习--学习使用OO在ABAP中.简单入门概念.用个例子来说明
- MagicAjax.Net的使用要点和简单例子
- python中使用状态机的简单例子---截取'/x00'之前的字符串
- 使用反射(reflection)的简单例子
- Spring中配合hibernate使用的简单例子
- PHP通过COM使用ADODB的简单例子
- 通过一个简单的例子,介绍如何使用LDAP(转)
- Linux下,使用C/C++编写"静态链接库"的一个简单例子
- XDownPage2.0使用简单例子一
- StrutsFileUpload使用简单例子
- SAP ABAP/4学习--学习使用OO在ABAP中.简单入门概念.用个例子来说明
- 简单的使用.NET非对称加密算法的例子
- MagicAjax.Net的使用要点和简单例子
- XDownPage2.10使用简单例子(sqlserver)
- Spring中配合hibernate使用的简单例子