makefile 简介

一个最简单的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 ,它将删掉那些中间文件及可执行文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值