Linux: make/Makefile 相关的知识

 

背景:

  • 会不会写makefile,从一个侧面说明了一个人是否具备完成大型工程的能力
  • 一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的 规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂 的功能操作
  • makefile带来的好处就是——“自动化编译”,一旦写好,只需要一个make命令,整个工程完全自动编 译,极大的提高了软件开发的效率。
  • make是一个命令工具,是一个解释makefile中指令的命令工具,一般来说,大多数的IDE都有这个命 令,比如:Delphi的make,Visual C++的nmake,Linux下GNU的make。可见,makefile都成为了一 种在工程方面的编译方法。
  • make是一条命令,makefile是一个文件,两个搭配使用,完成项目自动化构建。

使用方法: 

创建makefile文件,使用vim 在makefile文件中进行编辑

makefile内部输入的内容 

输入内容的解析 

工作原理:

  1. make会在当前目录下找名字叫“Makefile”或“makefile”的文件。
  2. 如果找到,它会找文件中的第一个目标文件(target),在上面的例子中,他会找到mytest这个文件, 并把这个文件作为最终的目标文件,进行执行。
  3. 同时在执行的过程中,make会检测这个目标文件是否有必要进行执行,就比如:执行的目标文件是clean,文件的依赖方法是清除某一个指定的文件,当这个文件清除后,再次使用make进行执行时,make会发出提示,因为他找不到要删除的文件了。
  4. 同理对于其他文件来说,make会查看该文件的可执行文件和源文件的更新时间,如果源文件的时间更新则进行make,而可执行文件的时间更新则不执行make
  5. 而多不想要make的提示则需要 输入 .PHONY:目标文件 即可进行重复的执行目标文件下的依赖方法
  6. 因为make 是默认执行makefile中的第一个目标文件,若想要执行其他的目标文件则需要 make 目标文件名 即可。

依赖方法的执行 

 


 

相关推荐

  1. jvm相关知识

    2024-01-24 21:18:02       44 阅读
  2. 线程相关知识

    2024-01-24 21:18:02       30 阅读
  3. Django模板标签相关知识

    2024-01-24 21:18:02       37 阅读
  4. docker 相关用法和知识

    2024-01-24 21:18:02       31 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-24 21:18:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-24 21:18:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-24 21:18:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-24 21:18:02       20 阅读

热门阅读

  1. 深入理解Spark编程中的map方法

    2024-01-24 21:18:02       36 阅读
  2. qt学习:json数据文件读取写入

    2024-01-24 21:18:02       35 阅读
  3. 学习python仅收藏此一篇就够了(闭包,装饰器)

    2024-01-24 21:18:02       39 阅读
  4. nii文件的裁剪

    2024-01-24 21:18:02       33 阅读