目录标题

  • 前言
  • 命令概述
  • make的执行步骤
  • make distclean 以及和make clean的区别

前言

代码变成可执行文件,叫做编译(compile);先编译这个,还是先编译那个(即编译的安排),叫做构建(build)。
Make是最常用的构建工具,诞生于1977年,主要用于C语言的项目。但是实际上 ,任何只要某个文件有变化,就要重新构建的项目,都可以用Make构建。
Make这个词,英语的意思是"制作"。Make命令直接用了这个意思,就是要做出某个文件。

命令概述

make:根据Makefile编译源代码,连接,生成目标文件,可执行文件。
make clean:清除上次的make命令所产生的object文件(后缀为“.o”的文件)及可执行文件。
make install:将编译成功的可执行文件安装到系统目录中,一般为/usr/local/bin目录。
make dist:产生发布软件包文件(即distribution package)。这个命令将会将可执行文件及相关文件打包成一个tar.gz压缩的文件用来作为发布软件的软件包。
它会在当前目录下生成一个名字类似“PACKAGE-VERSION.tar.gz”的文件。PACKAGE和VERSION,是我们在configure.in中定义的AM_INIT_AUTOMAKE(PACKAGE, VERSION)。
make distcheck:生成发布软件包并对其进行测试检查,以确定发布包的正确性。这个操作将自动把压缩包文件解开,然后执行configure命令,并且执行make,来确认编译不出现错误,最后提示你软件包已经准备好,可以发布了。


make的执行步骤


1.在当前目录下查找以 Makefile 命名的文件
2.读入Makefile
3.读入被include的其它Makefile
4.初始化Makefile中的变量
5.推导隐晦规则,并分析所有规则
6.为所有目标创建依赖关系链
7.根据依赖关系,当发现目标文件不存在或者所依赖的文件比目标文件新(修改时间),就会执行规则对应的命令来更新
8.执行生成命令

make distclean 以及和make clean的区别

make clean仅仅是清除之前编译的可执行文件及配置文件。
而make distclean要清除所有生成的文件(同时将configure生成的文件全部删除掉,包括Makefile。

make的执行步骤以及常见的make命令,make distclean 以及和make clean的区别相关推荐

  1. 硬件开发设计 - 焊接电路板,介绍焊接概念,焊接步骤,常见错误,难点等

    焊接是硬件开发的基本功,硬件开发中常见问题除了电路设计问题,最大的就是手工焊接质量问题,而设计之初,所有的样板基本都要手工去焊接,当然一些大公司会设有焊接岗位,开发人员不需要自己去焊接,焊接功底也应该 ...

  2. 【计算机系统结构】~ MCU、AXI、IIC、SPI、GPIO、JTAG 接口、指令执行步骤、晶体与晶振的区别

    本章目录: 1. MCU 2. AXI 3. IIC 4. SPI 4.1 IIC.SPI.UART.CAN.RS485.USB.PCI速率比较 4.1.1 I2C 4.1.2 SPI 4.1.3 C ...

  3. mysql数据库SELECT语句执行步骤

    2019独角兽企业重金招聘Python工程师标准>>> (1) FROM <left_table> (3) <join_type> JOIN <righ ...

  4. jdk类加载器执行步骤_[JDK 11] jcmd中的类加载器层次结构详细信息

    jdk类加载器执行步骤 自从在JavaOne 2012上听说 jcmd以来,我就一直是命令行诊断工具jcmd的 粉丝 . 从那时起,我已经广泛使用了此工具,并多次在此博客中发布过此工具: jcmd:一 ...

  5. android自定义的生命周期,android 自定义控件之ViewGroup生命周期执行步骤(示例代码)...

    前言 了解ViewGroup的生命周期的执行步骤对于自己自定义ViewGroup的时候十分重要,清楚了整个流程才能对ViewGroup有更深的理解.本文从个人的总结,来阐述一下执行的顺序. 执行说明 ...

  6. stylegan-encoder代码执行步骤和解释

    目录 (一)从图片中抽取并对齐人脸: (二)找到对齐人脸图片的latent表达: (三)从对齐的人脸头像提取特征码并生成StyleGAN头像: (四)用别人的特征码修饰你的照片特征码,并生成混合后的S ...

  7. sql语句执行步骤详解

    一.准备工作 先来一段伪代码,首先你能看懂么? SELECT DISTINCT <select_list>FROM <left_table><join_type> ...

  8. Github——git本地仓库建立与远程连接(最详细清晰版本!附简化步骤与常见错误)

    前提概要: github进不去?图片显示不出来? 有没有更简单的github上传方式?! 戳这里←←←← 文章目录 一.git简介 二.git下载 三.git安装 3.1config设置(增删改查) ...

  9. DataQL之语法-万能查询执行步骤

    万能查询执行步骤 引用包 <dependency><groupId>net.hasor</groupId><artifactId>hasor-dataq ...

最新文章

  1. [AWK]使用AWK进行分割字符串以及截取字符串
  2. mysql表大小限制_技术分享 | 在磁盘上查找 MySQL 表的大小
  3. 题解 DTOJ #1438. 矮人排队(lineup)
  4. .Netcore使用Session
  5. flask貌似html文件里只能用flask指定的路径格式,css文件里则可用相对路径
  6. php ahp和jhp,php7.4编译(centos)
  7. MVVMLight 实现指定Frame控件的导航
  8. c++ reference counting引用计数原理
  9. php event loop,理解javascript中的事件循环(Event Loop)
  10. 在线登记系统代码 php_PHP框架实现WebSocket在线聊天通讯系统
  11. matlab fftshift_数字信号处理没有Matlab?用Python一样很爽
  12. Linux彻底删除mysql
  13. Python 处理前端反调试(无限debugger)
  14. 居家养老管理系统设计
  15. 基于余弦适应性骨架的差分进化算法
  16. jQuery UI框架
  17. WebRTC android 端支持H264编解码
  18. 校招拼多多笔试题(前端工程师)
  19. enfp工具箱怎么用_5个很少人知道的黑科技工具箱,功能奇妙,一个顶十个用
  20. UE GamePlay框架(一) GameInstance、SaveGame

热门文章

  1. 中国智能音箱行业前景预测与市场调查研究报告
  2. RemoteView的使用
  3. 告别传统excel,教你高效制作各种报表
  4. 光传输-ROADM技术总结
  5. candence导出元器件清单BOM
  6. 武汉大学计算机学院乒乓球室,武汉大学2018年研究生乒乓球比赛报名
  7. UVa OJ 12086
  8. MCM智拼图-镶嵌数据集-自动匀色镶嵌分幅处理
  9. Ubuntu安装TFTP
  10. 两天签约148个项目,投资总额超900亿,这个领域,马上要有大动作!