一,Makefile的文件名

  默认的情况下,make命令会在当前目录下按顺序找寻文件名为“GNUmakefile”、“makefile”、“Makefile”的文件,大部分情况下,make命令都支持makefile和Makefile这两种命名。所以一般情况下都是将文件名命为这两个,没有后缀。

二,Makefile内容格式语法

  目标名:依赖目标
                        @命令
                        @命令

三,make命令行的使用

  1,通用情况:make -f make脚本文件  目标名,这种情况适用于没有使用makefile或Makefile文件名,而是使用其它格式的命名方式,如:

        我们有一个demo.mk的Makefile文件,它里面有一个demo的目标名,那么我们的make命令行就是make -f demo.mk demo

        当然我们需要先指明路径,用export LD_LIBRARY_PATH=.  如果Makefile里面使用了动态库,这样就指明该动态库是在当前的文件夹内,否则会出现undefined reference to的错误。

  2,当Makefile的文件名为makefile或Makefile时,可以直接使用make 目标名

  3,当要执行的目标名在文件的第一个目标时,可以直接使用make指令

四,目标的调用规则:(make把目标当作文件)

  make执行目标:
                        搜索与目标相同的文件
                        如果文件存在,则判定日期。
                        日期最新,则停止执行,输出提示
                        日期不是最新,则进行执行。
                        比较:当前目标与依赖目标

五,变量

  可以使用变量的方式来代替重复出现的文件名,定义的方式为:变量=值

  调用的方式为:$(变量名) 或 ${变量}

六,伪目标

  “伪目标”并不是一个文件,只是一个标签,由于“伪目标”不是文件,所以make无法生成它的依赖关系和决定它是否要执行。

  假设我们这有一个目标clean,它的定义是这样的

  clean:

    rm *.o        //它将删除所有.o格式的文件

  将clean声明为伪目标的格式为:  .PHONY clean

Linux学习笔记9——make和Makefile的更多相关文章

  1. Linux学习笔记——举例说,makefile 多个文件

    0.前言     从学习C语言開始就慢慢開始接触makefile,查阅了非常多的makefile的资料但总感觉没有真正掌握makefile,假设自己动手写一个makefile总认为非常吃力. 所以特意 ...

  2. Linux学习笔记——举例说,makefile 添加宏定义

    0.前言     从学习C语言開始就慢慢開始接触makefile,查阅了非常多的makefile的资料但总感觉没有真正掌握makefile.假设自己动手写一个makefile总认为非常吃力. 所以特意 ...

  3. Linux 学习笔记

    Linux学习笔记 请切换web视图查看,表格比较大,方法:视图>>web板式视图 博客园不能粘贴图片吗 http://wenku.baidu.com/view/bda1c3067fd53 ...

  4. linux学习笔记2-linux的常用命令

    第一篇博客:linux学习笔记1-ubuntu的安装与基本设置 之中,已经介绍了如何安装linux操作系统,以及一些基本的设置修改. 本篇博客主要介绍linux中的一些常用的终端命令 ======== ...

  5. Linux学习笔记(一)2015.4.13

    研究生由单片机转Linux学习 首先安装VMware虚拟机,用的是VMware 10.0 在VMware 10.0上安装视频上推荐的Red Hat Linux 5 安装后正式进入Linux学习 笔记1 ...

  6. 20160127 linux 学习笔记

    Linux学习笔记第一天 Linux基本介绍 Linux的起源和发展: 简单说linux是一种操作系统,可以安装在包括服务器.个人电脑,乃至PDA.手机.打印机等各类设备中. 起源: Linux起源于 ...

  7. linux —— 学习笔记(汇总)

    笔记目录:一.系统知识 和 基本概念                    二.常用操作                   三.系统管理(内存.设备.服务等管理)                   ...

  8. Linux学习笔记-林耐斯Notes-Linux就该这么学

    Linux学习笔记... 参考的优秀Linux网站: http://www.w3cschool.cn/linux/ http://www.linuxeye.com/ http://linux.vbir ...

  9. Linux~学习笔记目录索引

    回到占占推荐博客索引 本篇文章是对自己学习Linux及在它的环境下部署工具的一个总结,以方便自己查阅,也给他人一个帮助,本文章同时会不断的更新,欢迎大家订阅! 本目录包括的内容会包括linux基础命令 ...

随机推荐

  1. VS2010对Excel操作---DLL向

    最近公司有个项目要用到Excel的操作,于是自己就对VC中关于Excel的操作进行整理了下.而这里我是直接做成DLL方便他人调用的. 创建一个MFC Dll项目. 选择MFC扩展DLL. 在“类视图” ...

  2. js 关于字母和数字之间的转换

    方法:字符转ascii码:用charCodeAt();        ascii码转字符:用fromCharCode(); 例子: 字母转成数字: var str='A'; str.charCodeA ...

  3. java开发规范总结_代码编码规范

    规范需要平时编码过程中注意,是一个慢慢养成的好习惯 1.基本原则 强制性原则:     1.字符串的拼加操作,必须使用StringBuilder:     2.try…catch的用法 try{ }c ...

  4. [Introduction to programming in Java 笔记] 1.3.9 Factoring integers 素因子分解

    素数 A prime is an integer greater than one whose only positive divisors are one and itself.整数的素因子分解是乘 ...

  5. php返回相对时间(如:20分钟前,3天前)的方法

    function plural($num) { if ($num != 1) return "s"; } function getRelativeTime($date) { $di ...

  6. 简易的highcharts公共绘图模块封装--基于.net mvc

    运行效果: 之所以选择这个图表插件,是因为它较其他同类插件轻量且中文文档详细完整,Demo丰富,配置使用简单.具体内容请登录中文官网:http://www.hcharts.cn/ 项目详细: 项目环境 ...

  7. jquery自动切换tabs选项卡

    <%@ page language="java" contentType="text/html; charset=utf-8"    pageEncodi ...

  8. InstallShield:自己备份

    LIST listData;//声明listData listData = ListCreate(STRINGLIST);//创建一个空的实际字符串或数字列表. //参数都是在上个界面中赋值,然后在下 ...

  9. strtotime 的几点不同

    在php里面,strtotime()有点比较特殊,date函数也有点问题 if ( date(1,time()) == "Monday")    //似乎 date(1,time( ...

  10. 复制档案或目录 linux cp命令详解

    cp (复制档案或目录) [root@linux ~]# cp [-adfilprsu] 来源档(source) 目的檔(destination)[root@linux ~]# cp [options ...