一、makefile介绍:

一个工程中的源文件不计其数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为 makefile就像一个Shell脚本一样,其中也可以执行操作系统的命令。

Linux 环境下的程序员如果不会使用GNU make来构建和管理自己的工程,应该不能算是一个合格的专业程序员。在 Linux(unix )环境下使用GNU 的make工具能够比较

容易的构建一个属于你自己的工程,整个工程的编译只需要一个命令就可以完成编译、连接以至于最后的执行。不过这需要我们投入一些时间去完成一个或者多个称之为

Makefile 文件的编写。

所要完成的Makefile 文件描述了整个工程的编译、连接等规则。其中包括:工程中的哪些源文件需要编译以及如何编译、需要创建那些库文件以及如何创建这些库文件、如何最后产生我们想要的可执行文件。尽管看起

来可能是很复杂的事情,但是为工程编写Makefile 的好处是能够使用一行命令来完成“自动化编译”,一旦提供一个正确的Makefile。编译整个工程你所要做的唯一的一件事就是在shell 提示符下输入make命令。

整个工程完全自动编译,极大提高了效率。

二、makefile使用

因为刚刚了解makefile,就简单的实现一个创建动态函数库和静态函数库的功能

三、makefile规则

#第一条目标为总的目标,

#依赖可以是文件(目录)或为其他目标

#动作可以是Linux命令,动作的那一行第一个字符必须是以TAB键
  target: depend1 depend2 depend3 ...
  [TAB] action1
  [TAB ] action2
  target1:
 [TAB] action1
 [TAB] action2

四、make的使用

make 找makefile或Makefile文件执行总的目标

make clean 执行makefile文件中的clean目标

make -C directory 进入到directory文件夹中去执行总的目标

make clean -c direcotry 进入到directory文件夹中去执行clean目标

make -f comm_makefile 通过-f选项指定一个makefile文件

make VAR=value 给Makefile传一个参数VAR,其值为value

makefile命令基本运用(一)的更多相关文章

  1. makefile笔记4 - makefile命令

    每条规则中的命令和操作系统 Shell 的命令行是一致的. make 会一按顺序一条一条的执行命令,每条命令的开头必须以[Tab]键开头,除非,命令是紧跟在依赖规则后面的分号后的. 在命令行之间中的空 ...

  2. windows下makefile命令详解

    转自https://blog.csdn.net/xiexievv/article/details/45775005 1. 如果已经有vc6的dsp工程,可直接导出nmake脚本文件(.mak) “Pr ...

  3. Makefile 命令解析

    1.$(patsubst %.c,%.o, a.c b.c) 把字串“a.c b.c”符合模式[%.c]的单词替换成[%.o],返回结果是“a.o b.o” 2.$(VAR:A=B) 对于一个已经定义 ...

  4. 转载-------makefile 使用总结

    转载自:http://www.cnblogs.com/wang_yb/p/3990952.html 1. Makefile 简介 Makefile 是和 make 命令一起配合使用的. 很多大型项目的 ...

  5. Makefile使用总结

    1. Makefile 简介 Makefile 是和 make 命令一起配合使用的. 很多大型项目的编译都是通过 Makefile 来组织的, 如果没有 Makefile, 那很多项目中各种库和代码之 ...

  6. Linux就这个范儿 第8章 我是Makefile

    Linux就这个范儿 第8章 我是Makefile P287 Makefile的作用就是——自动化编译,一旦写好,只需要一个make命令(解析Makefile,执行Makefile中描述的操作),整个 ...

  7. Makefile 使用总结【转】

    转自:http://www.cnblogs.com/wang_yb/p/3990952.html 1. Makefile 简介 Makefile 是和 make 命令一起配合使用的. 很多大型项目的编 ...

  8. 通用Makefile

    本文推荐了一个用于对 C/C++ 程序进行编译和连接以产生可执行程序的通用 Makefile. 在使用 Makefile 之前,只需对它进行一些简单的设置即可:而且一经设置,即使以后对源程序文件有所增 ...

  9. makefile编写--引用

    1. Makefile 简介 Makefile 是和 make 命令一起配合使用的. 很多大型项目的编译都是通过 Makefile 来组织的, 如果没有 Makefile, 那很多项目中各种库和代码之 ...

随机推荐

  1. IELTS Writing Tips

  2. ASP.Net MVC3安全升级导致程序集从3.0.0.0变为3.0.0.1

    开发环境一般引用的是本机 C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET MVC 3\Assemblies下的System.Web.Mvc.dll,当 ...

  3. PHP实现CSV大文件数据导入到MYSQL数据库

    <?php $db_host="192.168.1.10"; $db_user="root"; $db_psw="11111"; $d ...

  4. 最近自己封装了个JS脚本,用来创建和操作Table

    基于JQuery封装的Table操作脚本 /** 依赖JQuery **/ (function () { var Table = window.Table = function (rowCount, ...

  5. 批量执行SQL语句,进行删除,插入或者更改。

    private bool ExecuteTransaction(List<string> list) { using (SqlConnection connection = new Sql ...

  6. Chrome & Linux font

    1 $ sudo apt-get install texlive-full # 较大 2 $ mkdir -p ~/.fonts 3 下载这个win7字体包解压后放到~/.fonts下 4 $ sud ...

  7. Xml与DataTable相互转换方法

    1.Xml与DataTable相互转换方法:http://www.cnblogs.com/lilin/archive/2010/04/18/1714927.html

  8. MySql密码忘记解决方法

    1.先杀掉mysqld-nt.exe 进程,有很多种方法,最简单是在CMD里输入net stop mysql 2.CMD路径切换到MySQL的安装目录下的bin里 输入mysqld-nt.exe  - ...

  9. SharePreference 工具类封装

    import java.util.List;import java.util.Map;import java.util.Set;import com.alibaba.fastjson.JSON;imp ...

  10. android studio serialversionuid设置