现在的位置: 首页 > 综合 > 正文

makefile 简介

2013年10月22日 ⁄ 综合 ⁄ 共 1001字 ⁄ 字号 评论关闭

一个最简单的makefile例子

 

一、程序的编译及链接

   
我们编译程序,无非是想要得到一个可执行文件,而这个过程则是经过这两步:

***.c->
编译
->***.o->
链接
->
可执行文件。即
.c
经过编译得到
.o
文件,
.o
文件是一个中间文件,再对这些中间文件进行链接最终可得到可执行文件。

二、

Makefile

的规则

首先,来看一看
Makefile

书写规则:

target ... :
prerequisites ...

           
command

            ...

            ...

    target
也就是一个目标文件,可以是
.o
文件,也可以是执行文件,还可以是一个标签(
Label
)。

    prerequisites
就是,要生成那个
target
所需要的文件或是目标。

    command
也就是
make
需要执行的命令(任意的
Shell
命令)。这里要注意的是在命令前面要加上一个
tab
键,不是空
格,是按一个

tab
键按出来的空格。

    
这是一个文件的依赖关系,也就是说,
target
这一个
或多个的目标文件依赖于

prerequisites
中的文件,其生成规则定义在
command
中。说白一点就是说,
prerequisites
中如果有一个以上的文件比
target
文件要新的话,
command
所定义的命令就会被执行。这就是
Makefile
的规则,也就是
Makefile

最核心的内容。

这是
Makefile

主线和核心,但要写好一个

Makefile
还得继续努力。

三、一个最简单的

Makefile

例子

如有一个工程,含有
3
个头文件及四个
c
文件,那为了生
成所需的可执行文件,这时的

Makefile
可以这样写:

test:main.o t1.o
t2.o t3.o

     gcc
–o test main.o t1.o t2.o t3.o

main.o:main.c

     gcc
–c main.c

t1.o:t1.c t1.h

     gcc
–c t1.c

t2.o:t2.c t2.h

     gcc
–c t2.c

t3.o:t3.c t3.h

     gcc
–c t3.c

clean:

     rm
test main.o t1.o t2.o t3.o

到这里一个最简单的
makefile

写好了,把它的名字保存为

Makefile
就可以了,这时你只要在终端敲一下
make
,它就自动帮你编译链接了
^_^
如果敲入
make clean
,它将删掉那些中间文件及可执行文件。

抱歉!评论已关闭.