make的执行步骤以及常见的make命令,make distclean 以及和make clean的区别
目录标题
- 前言
- 命令概述
- 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的区别相关推荐
- 硬件开发设计 - 焊接电路板,介绍焊接概念,焊接步骤,常见错误,难点等
焊接是硬件开发的基本功,硬件开发中常见问题除了电路设计问题,最大的就是手工焊接质量问题,而设计之初,所有的样板基本都要手工去焊接,当然一些大公司会设有焊接岗位,开发人员不需要自己去焊接,焊接功底也应该 ...
- 【计算机系统结构】~ 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 ...
- mysql数据库SELECT语句执行步骤
2019独角兽企业重金招聘Python工程师标准>>> (1) FROM <left_table> (3) <join_type> JOIN <righ ...
- jdk类加载器执行步骤_[JDK 11] jcmd中的类加载器层次结构详细信息
jdk类加载器执行步骤 自从在JavaOne 2012上听说 jcmd以来,我就一直是命令行诊断工具jcmd的 粉丝 . 从那时起,我已经广泛使用了此工具,并多次在此博客中发布过此工具: jcmd:一 ...
- android自定义的生命周期,android 自定义控件之ViewGroup生命周期执行步骤(示例代码)...
前言 了解ViewGroup的生命周期的执行步骤对于自己自定义ViewGroup的时候十分重要,清楚了整个流程才能对ViewGroup有更深的理解.本文从个人的总结,来阐述一下执行的顺序. 执行说明 ...
- stylegan-encoder代码执行步骤和解释
目录 (一)从图片中抽取并对齐人脸: (二)找到对齐人脸图片的latent表达: (三)从对齐的人脸头像提取特征码并生成StyleGAN头像: (四)用别人的特征码修饰你的照片特征码,并生成混合后的S ...
- sql语句执行步骤详解
一.准备工作 先来一段伪代码,首先你能看懂么? SELECT DISTINCT <select_list>FROM <left_table><join_type> ...
- Github——git本地仓库建立与远程连接(最详细清晰版本!附简化步骤与常见错误)
前提概要: github进不去?图片显示不出来? 有没有更简单的github上传方式?! 戳这里←←←← 文章目录 一.git简介 二.git下载 三.git安装 3.1config设置(增删改查) ...
- DataQL之语法-万能查询执行步骤
万能查询执行步骤 引用包 <dependency><groupId>net.hasor</groupId><artifactId>hasor-dataq ...
最新文章
- [AWK]使用AWK进行分割字符串以及截取字符串
- mysql表大小限制_技术分享 | 在磁盘上查找 MySQL 表的大小
- 题解 DTOJ #1438. 矮人排队(lineup)
- .Netcore使用Session
- flask貌似html文件里只能用flask指定的路径格式,css文件里则可用相对路径
- php ahp和jhp,php7.4编译(centos)
- MVVMLight 实现指定Frame控件的导航
- c++ reference counting引用计数原理
- php event loop,理解javascript中的事件循环(Event Loop)
- 在线登记系统代码 php_PHP框架实现WebSocket在线聊天通讯系统
- matlab fftshift_数字信号处理没有Matlab?用Python一样很爽
- Linux彻底删除mysql
- Python 处理前端反调试(无限debugger)
- 居家养老管理系统设计
- 基于余弦适应性骨架的差分进化算法
- jQuery UI框架
- WebRTC android 端支持H264编解码
- 校招拼多多笔试题(前端工程师)
- enfp工具箱怎么用_5个很少人知道的黑科技工具箱,功能奇妙,一个顶十个用
- UE GamePlay框架(一) GameInstance、SaveGame