Ubuntu之make:make命令行工具的简介、安装、使用方法之详细攻略

目录

make命令行工具的简介

make命令行工具的安装

make命令行工具的使用方法


make命令行工具的简介

Ubuntu Make is a command line tool which allows you to download the latest version of popular developer tools on your installation, installing it alongside all of the required dependencies (which will only ask for root access if you don't have all the required dependencies installed already), enable multi-arch on your system if you are on a 64 bit machine, integrate it with the Unity launcher. Basically, one command to get your system ready to develop with!

Ubuntu Make是一个命令行工具,允许您在安装时下载最新版本的流行开发人员工具,并将其与所有必需的依赖项一起安装(如果尚未安装所有必需的依赖项,则只要求根访问),启用e如果您在64位机器上,系统上的multi-arch与Unity启动器集成。基本上,一个命令可以让您的系统准备好进行开发!
       无论是在Linux还是在Unix环境中,make都是一个非常重要的编译命令。不管是自己进行项目开发还是安装应用软件,我们都经常要用到make或make install。利用make工具,我们可以将大型的开发项目分解成为多个更易于管理的模块,对于一个包括几百个源文件的应用程序,使用make和makefile工具就可以简洁明快地理顺各个源文件之间纷繁复杂的相互关系。而且如此多的源文件,如果每次都要键入gcc命令进行编译的话,那对程序员来说简直就是一场灾难。而make工具则可自动完成编译工作,并且可以只对程序员在上次编译后修改过的部分进行编译。因此,有效的利用make和makefile工具可以大大提高项目开发的效率。同时掌握make和makefile之后,您也不会再面对着Linux下的应用软件手足无措了。

方法一:(自动安装)

1、进入root权限:su root

2、更新安装列表:apt-get update

3、安装make:apt-get install make

方法二:(手动安装)

1、查看make版本,在浏览器搜索:ftp://ftp.gnu.org/gnu/make/ 可进入下载页面

2、进入文件存放路径:cd /home/tool

3、下载安装包:wget http://ftp.gnu.org/gnu/make/make-3.81.tar.gz

4、解压压缩包:tar -zvxf make-3.81.tar.gz

5、进入解压文件目录:cd make-3.81

6、系统配置make:./configure --prefix=/usr/local/make-3.81

7、执行编译:make

8、安装make:sudo make install

这里加上sudo是因为这一步会将编译好的make 3.81版本的文件转移到/usr/local/make-3.81目录下,这个目录只有root有权限写入。因此需要sudo权限

make命令行工具的安装

先更新找到ubuntu-make,再下载
sudo apt-get update
sudo apt-get install ubuntu-make

190727更新

sudo apt-get install make

make命令行工具的使用方法

1、Make命令参数的典型序列如下所示

make [-f makefile文件名][选项][宏定义][目标]     #这里用[]括起来的表示是可选的。命令行选项由破折号“–”指明,后面跟选项

2、 一个简单的例子

为了编译整个工程,你可以简单的使用 make 或者在 make 命令后带上目标 all。

  1. $ make

  2. gcc -c -Wall test.c

  3. gcc -c -Wall anotherTest.c

  4. gcc -Wall test.o anotherTest.o -o test

你能看到 make 命令第一次创建的依赖以及实际的目标。

如果你再次查看目录内容,里面多了一些 .o 文件和执行文件:

  1. $ ls

  2. anotherTest.c anotherTest.o Makefile test test.c test.h test.o

现在,假设你对 test.c 文件做了一些修改,重新使用 make 编译工程:

  1. $ make

  2. gcc -c -Wall test.c

  3. gcc -Wall test.o anotherTest.o -o test

你可以看到只有 test.o 重新编译了,然而另一个 Test.o 没有重新编译。

现在清理所有的目标文件和可执行文件 test,你可以使用目标 clean:

  1. $ make clean

  2. rm -rf *.o test

  3. $ ls

  4. anotherTest.c Makefile test.c test.h

你可以看到所有的 .o 文件和执行文件 test 都被删除了。

3. 通过 -B 选项让所有目标总是重新建立

到目前为止,你可能注意到 make 命令不会编译那些自从上次编译之后就没有更改的文件,但是,如果你想覆盖 make 这种默认的行为,你可以使用 -B 选项。下面是个例子:

  1. $ make

  2. make: Nothing to be done for `all'.

  3. $ make -B

  4. gcc -c -Wall test.c

  5. gcc -c -Wall anotherTest.c

  6. gcc -Wall test.o anotherTest.o -o test

你可以看到尽管 make 命令不会编译任何文件,然而 make -B 会强制编译所有的目标文件以及最终的执行文件。

3. 使用 -d 选项打印调试信息

如果你想知道 make 执行时实际做了什么,使用 -d 选项。这是一个例子:

  1. $ make -d | more

  2. GNU Make 3.81

  3. Copyright (C) 2006 Free Software Foundation, Inc.

  4. This is free software; see the source for copying conditions.

  5. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A

  6. PARTICULAR PURPOSE.

  7. This program built for x86_64-pc-linux-gnu

  8. Reading makefiles…

  9. Reading makefile `Makefile'…

  10. Updating makefiles….

  11. Considering target file `Makefile'.

  12. Looking for an implicit rule for `Makefile'.

  13. Trying pattern rule with stem `Makefile'.

  14. Trying implicit prerequisite `Makefile.o'.

  15. Trying pattern rule with stem `Makefile'.

  16. Trying implicit prerequisite `Makefile.c'.

  17. Trying pattern rule with stem `Makefile'.

  18. Trying implicit prerequisite `Makefile.cc'.

  19. Trying pattern rule with stem `Makefile'.

  20. Trying implicit prerequisite `Makefile.C'.

  21. Trying pattern rule with stem `Makefile'.

  22. Trying implicit prerequisite `Makefile.cpp'.

  23. Trying pattern rule with stem `Makefile'.

  24. --More--

这是很长的输出,你也看到我使用了 more 命令来一页一页显示输出。

4. 使用 -C 选项改变目录

你可以为 make 命令提供不同的目录路径,在寻找 Makefile 之前会切换目录的。这是一个目录,假设你就在当前目录下:

  1. $ ls

  2. file file2 frnd frnd1.cpp log1.txt log3.txt log5.txt

  3. file1 file name with spaces frnd1 frnd.cpp log2.txt log4.txt

但是你想运行的 make 命令的 Makefile 文件保存在 ../make-dir/ 目录下,你可以这样做:

  1. $ make -C ../make-dir/

  2. make: Entering directory `/home/himanshu/practice/make-dir'

  3. make: Nothing to be done for `all'.

  4. make: Leaving directory `/home/himanshu/practice/make-dir

你能看到 make 命令首先切到特定的目录下,在那执行,然后再切换回来。

5. 通过 -f 选项将其它文件看作 Makefile

如果你想将重命名 Makefile 文件,比如取名为 my_makefile 或者其它的名字,我们想让 make 将它也当成 Makefile,可以使用 -f 选项。

make -f my_makefile

通过这种方法,make 命令会选择扫描 my_makefile 来代替 Makefile。

linux Ubuntu之make:make命令行工具的简介、安装、使用方法之详细攻略相关推荐

  1. Python语言学习之常见语句命令那些事:python和常见语句命令(条件语句、pass语句)使用方法之详细攻略

    Python语言学习之常见语句命令那些事:python和常见语句命令(条件语句.pass语句)使用方法之详细攻略 目录 Python常见语句命令 1.python的条件语句 2.Python之pass ...

  2. linux终端命令make,Ubuntu之make:make命令行工具的简介、安装、使用方法之详细攻略...

    Ubuntu之make:make命令行工具的简介.安装.使用方法之详细攻略 目录 make命令行工具的简介 make命令行工具的安装 make命令行工具的使用方法 make命令行工具的简介 Ubunt ...

  3. Ubuntu之make:make命令行工具的简介、安装、使用方法之详细攻略

    Ubuntu之make:make命令行工具的简介.安装.使用方法之详细攻略 目录 make命令行工具的简介 make命令行工具的安装 make命令行工具的使用方法 make命令行工具的简介 Ubunt ...

  4. linux gpu 测试工具,推荐 7 大 Linux GPU 监控和诊断命令行工具

    原标题:推荐 7 大 Linux GPU 监控和诊断命令行工具 作者:Linux迷 链接:https://www.linuxmi.com/7-linux-gpu-jiankong.html 视频卡是一 ...

  5. linux下的安装命令行工具下载,本地安装DEB包的3种命令行工具(适合Debian体系)

    1. 前言 在本教程中,我们将学习如何使用三种不同的命令行工具(dpkg.apt和gdebi)在Debian及其衍生产品(如Ubuntu和Linux Mint)中安装本地软件包(. deb). 这对那 ...

  6. Python命令行解析:sys.argv[]函数的简介、案例应用之详细攻略

    Python命令行解析:sys.argv[]函数的简介.案例应用之详细攻略 目录 sys.argv[]函数的简介 sys.argv[]函数的案例应用 1.基础测试 2.进阶用法 3.sys.argv[ ...

  7. TF之TF flags:TF flags(命令行解析)的简介、安装、使用方法之详细攻略

    TF之TF flags:TF flags(命令行解析)的简介.安装.使用方法之详细攻略 目录 TF flags的简介 TF flags的安装 TF flags的使用方法 TF flags的简介 1.f ...

  8. Py之argparse:Python库之argparse(命令行解析)简介、安装、使用方法之详细攻略

    Py之argparse:Python库之argparse(命令行解析)简介.安装.使用方法之详细攻略 导读 python中的命令行解析最简单最原始的方法是使用sys.argv来实现,更高级的可以使用a ...

  9. WSL:WSL(Windows Subsystem for Linux)的简介、安装、使用方法之详细攻略

    WSL:WSL(Windows Subsystem for Linux)的简介.安装.使用方法之详细攻略 目录 WSL的简介 WSL的安装 WSL的使用方法 WSL的简介 Windows Subsys ...

最新文章

  1. NLP分词数据准备及模型训练实例
  2. 近期活动盘点:清华严飞大数据探寻中国文脉讲座、2019前沿信息科技创新论坛...
  3. 安装keras and theano于google colab上
  4. *dev=filp-private_data;这一句的理解
  5. 如何判断一个SAP CRM UI能否被扩展
  6. jquery 统计统计子标签的个数
  7. shiro学习(22):动态添加验证规则2
  8. cnetos7 mysql5.6 utf8设置_CentOS7下安装MySQL 5.6修改字符集为utf8并开放端口允许远程访问...
  9. (119)System Verilog 父类与子类对象复制(自定义函数)详解
  10. python语言程序的特点_《Python语言程序设计》 —1.1.3 Python的特点及应用领域...
  11. 2017 ACM暑期多校联合训练 - Team 3 1008 HDU 6063 RXD and math (莫比乌斯函数)...
  12. 机器视觉:嵌入式视觉系统中的接口
  13. UVa11809-Floating-Point Numbers
  14. MonkeyDevice Class
  15. 从零基础入门Tensorflow2.0 ----九、44.4 签名函数转换成savedmodel
  16. 人事管理系统(毕业设计)
  17. idea 破解版安装
  18. 大年三十问候导师的后果
  19. java word 水印_java操作word水印
  20. 面试题(19)今日头条Java后台研发三面题目

热门文章

  1. 冬季使用笔记本电脑五大禁忌
  2. DongTai 被动型IAST工具
  3. eclipse文件到idea乱码问题
  4. 棋盘覆盖问题 java_Java棋盘覆盖问题
  5. Panasonic Programming Contest 2020 E.Three Substrings
  6. Collapsing margins(外边距合并)
  7. C++ Error C2280 尝试引用已删除的函数(二)因std::mutex引起的拷贝
  8. Linux搭建测试环境(一)_JDK的安装
  9. iphone6s gpu Android,苹果iPhone6s GPU跑分出炉:性能翻倍
  10. 视觉惯性单目SLAM (三)优化方法