打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Makefile介绍

http://blog.sina.com.cn/s/blog_8240cbef01018jel.html

2013


   Linux程序员必须学会使用GNU make来构建和管理自己的软件工程。GNU的make能够使整个软件工程的编译、链接只需要一个命令就可以完成。

   "makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为makefile就像一个shell脚本一样,其中也可以执行操作系统的命令。makefile带来的好处就是——“自动化编译”,一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率。"

 

一般规则

目标(target):依赖(prerequiries)

<TAB>命令(Command)

1)目标是要生成的文件名称,可以使可执行文件或OBJ文件,也可以是一个执行动作的名称,例如“clean”。

2)依赖是用来产生目标的材料(源文件),一个目标经常用几个依赖。

3)命令时生成目标时执行的动作,一个规则可以含有几个命令,每个命令占一行。第一条规则中的目标将被确立为最终的目标。

并非所有的目标都有依赖,例如目标“clean”的功能是清除文件,没有依赖。

 

make命令默认在当前目录下寻找名字为makefile或者Makefile的工程文件,当名字不为这两者之一时,可以使用如下方法指定:
make –f 文件名

 

在makefile中,存在系统默认的自动化变量
$^:代表所有的依赖文件
$@:代表目标
$<:代表第一个依赖文件

 

取自国嵌mini2440视频中的例子:

fun.c :

#include "fun.h"

int max_fun(int x,int y)
{
   if(x>=y)
     return x;
    else
     return y;
}

fun.h :

#include <stdio.h>
extern int max_fun(int x,int y);

 

main.c :

#include "fun.h"

int main(void)
{
    inta,b;
 printf("Please enter the number a an b\n");
 scanf("%d%d",&a,&b);
 int max=0;
 max=max_fun(a,b);
 printf("The max number is %d\n",max);
 return 0;
}

makefile :

main:main.o fun.o
    gcc main.ofun.o -o main
main.o:main.c fun.h
    gcc -cmain.c -o main.o
fun.o:fun.c fun.h
    gcc -c fun.c-o fun.o
clean:
    rm -f main*.o

 

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
makefile的简单使用
多文件工程的编译-Makefile的简便写法
makefile如何减小可执行文件的大小(没有用到的函数不参与链接)
Linux下编写makefile文件
使用automake等命令自动生成Makefile文件
Linux下Makefile文件的的基础知识与语法详解
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服