利用make工具,我们可以将大型的开发项目分解成为多个更易于管理的模块,对于一个包括几百个源文件的应用程序,使用make和 makefile工具就可以简洁明快地理顺各个源文件之间纷繁复杂的相互关系。而且如此多的源文件,如果每次都要键入gcc命令进行编译的话,那对程序员 来说简直就是一场灾难。而make工具则可自动完成编译工作,并且可以只对程序员在上次编译后修改过的部分进行编译。因此,有效的利用make和 makefile工具可以大大提高项目开发的效率。

Make工具最主要也是最基本的功能就是通过makefile文件来描述源程序之间的相互关系并自动维护编译工作。而makefile 文件需要按照某种语法进行编写,文件中需要说明如何编译各个源文件并连接生成可执行文件,并要求定义源文件之间的依赖关系。makefile 文件是许多编译器--包括 Windows NT 下的编译器--维护编译信息的常用方法,只是在集成开发环境中,用户通过友好的界面修改 makefile 文件而已。

在Linux中大多数软件提供的是源代码,而不是现成的可执行文件,这就要求用户根据自己系统的实际情况和自身的需要来配置、编译源程序后,软 件才能使用。只有掌握了make工具,才能让我们真正享受到到Linux这个自由软件世界的带给我们无穷乐趣。

[1] https://blog.csdn.net/ididcan/article/details/6193199

[2] https://www.cnblogs.com/hazir/p/linux_make_examples.html

make命令 makefile文件相关推荐

  1. Makefile文件(四)_书写命令

    变量说明: $@       --->      目标文件 $^       --->       所有的依赖文件 $<       --->       第一个依赖文件 一. ...

  2. Linux作业 使用make命令和分析makefile文件

    使用make命令和分析makefile文件   diction是一个经典的Unix小工具,用来检测使用不当的英文短语.   请前往 http://www.gnu.org/software/dictio ...

  3. Make命令与Makefile文件

    Make命令 使用Make命令只会在必要时重新编译所有受改动影响的源文件.而不会因为只改动了一个文件而重新编译整个项目. Make命令不仅仅用于编译程序,无论何时,当需要通过多个输入文件来生成输出文件 ...

  4. make命令和makefile文件

    一.多个源文件带来的问题 在编写小程序时,许多人都会在编辑完源文件后简单地重新编译所有文件以重建应用程序.但对大型程序来说, 使用这种简单到处理方式会带来很明显的问题.编辑-编译-测试这一循环的周期将 ...

  5. Makefile文件详解一(gcc命令参数详解)

    gcc编译源文件共有4个过程,预处理.编译.汇编.链接. 预处理: 命令:gcc -E test.c -o test.i  (-o后面指定生成文件的命名) 过程:展开宏定义(#define),处理编译 ...

  6. 从简入难makefile文件编写,Linux C++编程,简单vi命令

     1.一个最基本的C++程序 2.第二个c++程序 3.第一个入门级别的简单的makefile 4.在makefile中定义变量. 5.编写makefile的依赖 如果start:标识后面的某个. ...

  7. 项目Makefile文件模板

    整理出来的一个Makefile模板,新增了一个内容,调用gcc生成依赖文件,这样如果某个c文件包含的头文件被更新了,该c文件以及依赖于该c文件的obj文件都会被重新编译. 这个模板是按照我习惯的项目文 ...

  8. makefile文件编写教程

    技术交流QQ群:1027579432,欢迎你的加入! 1.make介绍 gcc:编译器(gcc根据菜谱进行编译) make: linux自带的构建器(相当于一个菜谱) 构建的规则(菜谱)在makefi ...

  9. [转]C++ 使用Makefile文件

    //*********list class.h********** class tdate { private: int month; int day; int year; public: tdate ...

最新文章

  1. R语言dplyr包mutate_all函数一次性处理所有的数据列的内容(使用统一的函数)实战
  2. eclipse插件的发布
  3. Forefront TMG2010中文版安装体验
  4. C 的 6 种内存顺序,你都知道吗?
  5. pcb成型板aoi检测_基于AOI技术的PCB常见质量缺陷检测
  6. Bash:字符串操作
  7. Java学习资源整理(超级全面),java基础面试笔试题
  8. 《设计模式之禅》--单例扩展:多例模式
  9. Windows 下 tail 查看日志命令工具
  10. java中的时间片概念_java中常用的时间处理类TimeUtil
  11. 如何自定义TCP通信协议
  12. html5怎么设置年月日选择框,HTML5文件选择框(各种类型)
  13. 如何在移动硬盘上安装Ubuntu系统(2)
  14. 前端----let关键字、const关键字
  15. Java工程师进阶知识完全扫盲, 太全了!!
  16. #MATLAB /Simulink 错误记录
  17. WINDOWS 7全系列验证码
  18. ZZULIOJ.1102: 火车票退票费计算(函数专题)
  19. JVM_06 运行时数据区3-方法区
  20. 轴承故障诊断经典模型pytorch复现(一)——WDCNN

热门文章

  1. som神经网络聚类简单例子_深度聚类的可视化解释
  2. java开发的应用的有哪些
  3. (fastjson )json和byte[], 互转问题!
  4. simulink模糊逻辑控制器的使用小结
  5. redis-port工具
  6. 安卓更新UI的几种方法
  7. (MY)SQL基本语句
  8. vue组件 孙组件 调用爷组件(祖父组件)的方法
  9. Redis6客户端工具——Jedis
  10. 如何启动mysql?