makefile的编写

1.hello.c

#include <stdio.h>
int main()
{
    printf(“Hello World!\ n”);
    return 0;
}

2.Makefile

hello:hello.o
    cc -o hello hello.o

hello.o:hello.c
    cc -c hello.c

clean: 
    rm hello.o

说明:cc -o hello hello.o前面是一个tab的空格

3.执行令,产生可执行文件打招呼

输出如下:
cc -c hello.c
cc -o hello hello.o

4.执行make clean,删除产生的中间文件hello.o

输出如下:
rm hello.o


另转:http : //hi.baidu.com/s_rlzheng/blog/item/4bc10a06892e217d030881ef.html

  本来早就应该学的Makefile了,只是我偷懒,现在才学呵呵^ _ ^ makefile文件的好处叫我说,老实说我也说不出什么之所以然来,但是可以肯定的是它是Linux的平台的软件工程师都要必备的知识^ _ ^

一,程序的编译及链接

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

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

二,Makefile中的规则

首先,来看一看Makefile文件的书写规则:

目标...:先决条件...

            命令

            ...

            ...

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

    先决条件就是,要生成那个目标所需要的文件或是目标。

    命令也就是化妆需要执行的命令(任意的外壳命令)。这里要注意的是在命令前面要加上一个tab键,不是空格,是按一个标签键按出来的空格。

     这是一个文件的依赖关系,也就是说,目标这一个或多个的目标文件依赖于先决条件中的文件,其生成规则定义在命令中。说白一点就是说,先决条件中如果有一个以上的文件比目标文件要新的话,命令所定义的命令就会被执行。这就是生成文件的规则,也就是生成文件中最核心的内容。这是生成文件的主线和核心,但要写好一个生成文件还得继续努力。

三,一个最简单的Makefile的例子

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

测试: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,它将删掉那些中间文件及可执行文件。

===========================

附录链接:

https://blog.csdn.net/dongdong0071/article/details/52040559

https://blog.csdn.net/haoel/article/details/2886

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值