1    src : = $(shell  ls  *.c)
2    objs : = $(patsubst  %.c, %.o, $(src))
3    test : $(objs)
4            gcc  -o  $@  $^
5    %.o : %.c
6            gcc  -c  -o  $@  $<
7    cleam :
8            rm  -f  test  *.o

注:在Makefile编写规则中,“$@”表示规则的目标文件名,“$^”表示所有不重复的依赖文件名,“$<”表示第一个依赖文件名。
假设现在目录下有main.c, Makefile, sub.c, sub.h四个文件,
第1行:src变量的值为main.c和sub.c;
第2行:objs变量的值为main.o和sub.o;
第5、6行:用来生成main.o和sub.o的规则;
               对main.o来说就是:
                      main.o: main.c
                           gcc -c -o main.o main.c
               对sub.o来说就是:
                      sub.o: sub.c
                           gcc -c -o sub.o sub.c
第3行:即test:main.o sub.o;
第4行:根据第6行生成的main.o和sub.o文件来生成可执行文件test;
第7、8行:清理main.o和sub.o文件。

makefile文件模板介绍的更多相关文章

  1. 很详细、很移动的Linux makefile教程:介绍,总述,书写规则,书写命令,使用变量,使用条件推断,使用函数,Make 的运行,隐含规则 使用make更新函数库文件 后序

    很详细.很移动的Linux makefile 教程 内容如下: Makefile 介绍 Makefile 总述 书写规则 书写命令 使用变量 使用条件推断 使用函数 make 的运行 隐含规则 使用m ...

  2. 利用 autoconf 和 automake 生成 Makefile 文件

    一.相关概念的介绍 什么是 Makefile?怎么书写 Makefile?竟然有工具可以自动生成 Makefile?怎么生成啊?开始的时候,我有这么多疑问,所以,必须得先把基本的概念搞个清楚. 1.M ...

  3. linux中Makefile文件相关内容

    第一章.概述什么是makefile?或许很多Winodws的程序员都不知道这个东西,因为那些Windows的IDE都为你做了这个工作,但我觉得要作一个好的和professional(专业)的程序员,m ...

  4. 工程管理之makefile与自动创建makefile文件过程

    (风雪之隅 http://www.laruence.com/2009/11/18/1154.html) Linux Makefile自动编译和链接使用的环境 想知道到Linux Makefile系统的 ...

  5. makefile文件操作大全

     Makefile的规则 -- 转自 :http://blog.csdn.net/ruglcc/article/details/7814546/ 在讲述这个Makefile之前,还是让我们先来粗略地看 ...

  6. project管理之makefile与自己主动创建makefile文件过程

    (风雪之隅 http://www.laruence.com/2009/11/18/1154.html) Linux Makefile自己主动编译和链接使用的环境 想知道到Linux Makefile系 ...

  7. MakeFile 文件的使用

    什么是Makefile? 一个工程中的源文件不计其数,其按类型.功能.模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译, ...

  8. 【OpenWRT】【RT5350】【三】MakeFile文件编写规则和OpenWRT驱动开发步骤

    一.Makefile文件编写 http://www.cnblogs.com/majiangjiang/articles/3218002.html 可以看下上面的博客,总结的比较全了,在此不再复述 二. ...

  9. Linux内核Makefile文件(翻译自内核手册)

    --译自Linux3.9.5 Kernel Makefiles(内核目录documention/kbuild/makefiles.txt) kbuild(kernel build) 内核编译器 Thi ...

随机推荐

  1. Java位向量的实现原理与巧妙应用

    Java位向量的巧实现原理与巧妙应用 1.博文介绍 本篇博文将会介绍几本的位运算含义.位向量介绍.BitSet实现原理.Java位向量的应用.拓展介绍Bloom Filter等. 2.位运算介绍 1) ...

  2. Apache优化

    控制MaxClients的设置,以避免服务器产生太多的子进程而发生交换.进程间的数据交换会占用很大内存,数据交换产生的滞后使用户总感觉"不够快",所以用户就可能去按"停止 ...

  3. iOS 历史浏览网页的定向跳转

    在实际的开发过程中,涉及到交互的问题,原生和H5的网页相互嵌套,直接造成跳转的混乱,混乱就应该指定的历史记录中,就需要网页的一些相关的一些属性问题 需要在webview里面的代理方法中执行相对应的操作 ...

  4. 测试开发Python培训:抓取新浪微博评论提取目标数据-技术篇

    测试开发Python培训:抓取新浪微博评论提取目标数据-技术篇   在前面我分享了几个新浪微博的自动化脚本的实现,下面我们继续实现新的需求,功能需求如下: 1,登陆微博 2,抓取评论页内容3,用正则表 ...

  5. JSP的学习

    JSP的学习 1. (1).服务器的名字:Tomcat (2).服务器浏览器访问的地址为: http://localhost:8080 http://127.0.0.1:8080 2.简单的知识 (1 ...

  6. json解包与json封包

    首先,对两个名词进行简单的说明: 1.NSData 用来存储二进制的数据类型.NSData类提供了一种简单的方式,它用来设置缓冲区.将文件的内容读入缓冲区,或将缓冲区的内容写到一个文件.不变缓冲区(N ...

  7. firstElementChild&&firstChild

    <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>& ...

  8. E/MediaPlayer: Should have subtitle controller already set

    原文链接:http://stackoverflow.com/questions/20087804/should-have-subtitle-controller-already-set-mediapl ...

  9. Mybatis基础学习(五)—缓存

    一.概述      mybatis提供查询缓存,如果缓存中有数据就不用从数据库中获取,用于减轻数据压力,提高系统性能.           一级缓存是SqlSession级别的缓存.在操作数据库时需要 ...

  10. 04 Feasibility of Learning

    机器学习是设计算法A,在假设集合H里,根据给定数据集D,选出与实际模式f最为相近的假设g(g可能与f相同,也可能不同). 那什么情况下学习是可行的?即保证g和f是相似的. 1.数据集内的表现g约等于f ...