JAVA技术交流QQ群:170933152

make命令是GNU的工程化编译工具,用于编译众多相互关联的源代码问价,以实现工程化的管理,提高开发效率。

语法

make(选项)(参数)

选项

-f:指定“makefile”文件;
-i:忽略命令执行返回的出错信息;
-s:沉默模式,在执行之前不输出相应的命令行信息;
-r:禁止使用build-in规则;
-n:非执行模式,输出所有执行命令,但并不执行;
-t:更新目标文件;
-q:make操作将根据目标文件是否已经更新返回"0"或非"0"的状态信息;
-p:输出所有宏定义和目标文件描述;
-d:Debug模式,输出有关文件和检测时间的详细信息。

Linux下常用选项与Unix系统中稍有不同,下面是不同的部分:

-c dir:在读取 makefile 之前改变到指定的目录dir;
-I dir:当包含其他 makefile文件时,利用该选项指定搜索目录;
-h:help文挡,显示所有的make选项;
-w:在处理 makefile 之前和之后,都显示工作目录。

参数

目标:指定编译目标。

知识扩展

无论是在linux 还是在Unix环境 中,make都是一个非常重要的编译命令。不管是自己进行项目开发还是安装应用软件,我们都经常要用到make或make install。利用make工具,我们可以将大型的开发项目分解成为多个更易于管理的模块,对于一个包括几百个源文件的应用程序,使用make和 makefile工具就可以简洁明快地理顺各个源文件之间纷繁复杂的相互关系。

而且如此多的源文件,如果每次都要键入gcc命令进行编译的话,那对程序员 来说简直就是一场灾难。而make工具则可自动完成编译工作,并且可以只对程序员在上次编译后修改过的部分进行编译。

因此,有效的利用make和 makefile工具可以大大提高项目开发的效率。同时掌握make和makefile之后,您也不会再面对着Linux下的应用软件手足无措了。

Linux学习笔记011---编译命令make的认识及使用相关推荐

  1. Linux学习笔记---使用tftp命令下载文件

    向开发板下载数据时,不仅可以通过nfs命令下载,还可以通过更简单的命令tftp下载. 用网线将开发板和笔记本连接起来,设置好网络环境.网络的具体设置方法可以参考 Linux学习笔记---网线直连电脑和 ...

  2. Linux 学习笔记2 常用命令

    Linux 学习笔记1 安装linux详细教程_O丶ne丨柒夜的博客-CSDN博客 Linux_目录结构 基本介绍 1.liux的文件系统是采用级层式的树状目录结构,在此结构中的最上层是根目录&quo ...

  3. Linux学习笔记---初次编译Uboot系统

    在初次编译Uboot系统时,是按照正点原子开发指南操作的,但是开发指南上讲得不是很详细,又看了一遍视频教程才搞清楚完整步骤,为了方便学习,就将详细步骤记录下来,以便以后参考. Uboot初次编译 1. ...

  4. linux学习笔记2——ls命令说明

    ls是list的简写,功能是列出目录的内容,类似于DOS下的dir命令.这篇学习笔记主要介绍ls命令相关知识. 一.Linux下文件目录的特点 蓝色字体代表文件夹,白色字体代表文件 1.Linux文件 ...

  5. Linux学习笔记---常用shell命令

    目录 目录信息查看命令ls 清屏命令 clear 目录切换命令 cd 自动补全Tab键的妙用 创建文件夹 mkdir 删除文件夹 rmdir 删除命令 rm 查看路径命令pwd 移动或修改命令  mv ...

  6. linux学习笔记:yum命令的常见用法

    要知道,不同的linux系统里软件包的命令可能是不同的. yum命令是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器. 例如: yum install -y net-too ...

  7. LINUX学习笔记之mount命令

    depmod modprobe loop lsmod | grep loop loop 19017 0 有时需要在linux下需要访问windows的共享文件夹,可以使用mount挂载或者使用samb ...

  8. Linux学习笔记003----linux yum命令详解

    yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及SUSE中的Shell前端软件包管理器.基於RPM包管理,能够从指定的服务器自动下载RP ...

  9. 1)Linux学习笔记:crontab命令

    crond简介 crond是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程 配置文件 SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr ...

最新文章

  1. 数学建模感悟:新的算法的学习
  2. Django框架深入了解_01(Django请求生命周期、开发模式、cbv源码分析、restful规范、跨域、drf的安装及源码初识)
  3. 玩转oracle 11g(9):crud操作(亲测)
  4. python 文件加密_python实现文件快照加密保护的方法
  5. (18) HTML面试题集锦2
  6. android 修改 选择壁纸来源,修改android选择壁纸来源列表
  7. 开发错误记录5-Failed to sync Gradle project ‘HideTitleDemo’
  8. 解决ajaxSubmit无法传递自动回填和下拉框的数据
  9. 元宇宙,是忽悠还是未来
  10. adb 连接手机 cannot connect to xxx.xxx.x.xx:5555: 由于目标计算机积极拒绝,无法连接。 (10061)
  11. 网吧服务器系统如何配置,网吧服务器系统配置
  12. IMDB数据看影响电影票房的因素分析
  13. Python必学的OS模块详解
  14. 企业邮箱的优势有哪些
  15. 偶尔娱乐一下应该无妨?
  16. 工作中有可能用到的运维小知识《现查现用》
  17. Python的Couter使用,计算字符串中每个单词出现的次数
  18. matplotlib柱状图上方显示数据_Python数据分析matplotlib可视化之绘图!
  19. C++实现生产者消费者队列
  20. 矩阵连乘c语言实验报告,2013矩阵连乘实验报告.docx

热门文章

  1. Matplotlib - subplot(同一图中绘制不同的内容)
  2. keras笔记-mnist数据集上的简单训练
  3. Spring 中获取 request 的几种方法,及其线程安全性分析
  4. 《精通Spring 4.x 企业应用开发实战》读书笔记
  5. Uber 宣布将香港最低打车费用上涨 80%, 最低 45 港币
  6. 通过js动态设置select中option选中
  7. MySQL -- 获取当前数据行号
  8. jquery仿搜狐投票动画代码
  9. 编码原则:如何减少缩进层次
  10. altas(ajax)控件(二):悬浮面板控件AlwaysVisibleControl