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

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下的应用软件手足无措了。

ubuntu-makewiki

 

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。

$ make
gcc -c -Wall test.c
gcc -c -Wall anotherTest.c
gcc -Wall test.o anotherTest.o -o test

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

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

$ ls
anotherTest.c anotherTest.o Makefile test test.c test.h test.o

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

$ make
gcc -c -Wall test.c
gcc -Wall test.o anotherTest.o -o test

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

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

$ make clean
rm -rf *.o test
$ ls
anotherTest.c Makefile test.c test.h

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

 

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

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

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

$ make -B
gcc -c -Wall test.c
gcc -c -Wall anotherTest.c
gcc -Wall test.o anotherTest.o -o test

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

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

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

$ make -d | more
GNU Make 3.81
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.

This program built for x86_64-pc-linux-gnu
Reading makefiles…
Reading makefile `Makefile'…
Updating makefiles….
Considering target file `Makefile'.
Looking for an implicit rule for `Makefile'.
Trying pattern rule with stem `Makefile'.
Trying implicit prerequisite `Makefile.o'.
Trying pattern rule with stem `Makefile'.
Trying implicit prerequisite `Makefile.c'.
Trying pattern rule with stem `Makefile'.
Trying implicit prerequisite `Makefile.cc'.
Trying pattern rule with stem `Makefile'.
Trying implicit prerequisite `Makefile.C'.
Trying pattern rule with stem `Makefile'.
Trying implicit prerequisite `Makefile.cpp'.
Trying pattern rule with stem `Makefile'.
--More--

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

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

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

$ ls
file file2 frnd frnd1.cpp log1.txt log3.txt log5.txt
file1 file name with spaces frnd1 frnd.cpp log2.txt log4.txt

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

$ make -C ../make-dir/
make: Entering directory `/home/himanshu/practice/make-dir'
make: Nothing to be done for `all'.
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下make命令的使用方法

 

 

### 回答1: 错误信息: make: command not found 这表示你的系统中没有安装 make 命令或者系统中安装make 命令的位置没有在 PATH 环境变量中。通常可以通过安装 build-essential 包来解决这个问题。 ### 回答2: "make: command not found" 是在使用命令行时遇到的错误信息,它表明系统当前无法找到 `make` 这个命令。 这个问题通常出现在没有安装或者未正确配置 `make` 的情况下。`make` 是一个用于构建和编译项目的常用工具,特别是在开发软件时。它通常用于执行 `Makefile` 文件中定义的构建规则。 要解决这个问题,首先需要确定系统是否已经安装了 `make`。在大多数基于类UNIX系统的发行版中,通过以下命令可以检查它是否已经安装: ``` make -v ``` 如果 `make` 已安装,则会输出其版本信息。如果未找到该命令,可能需要手动安装 `make`。对于不同的操作系统,可以使用不同的包管理器来安装它。例如,在Debian或Ubuntu上,可以运行以下命令: ``` sudo apt-get install build-essential ``` 这将安装 `make` 及其相关的编译工具。 一旦确保 `make` 已经正确安装,还需要检查系统的环境变量是否包含 `make` 的可执行文件的路径。在终端中,可以尝试运行以下命令: ``` echo $PATH ``` 确保输出中包含了 `make` 的可执行文件的路径(通常是 `/usr/bin/make`)。如果没有包含,可以手动将 `make` 的路径添加到环境变量中,或者修复操作系统的路径配置。 总之,`make: command not found` 的错误往往是由于系统中未正确安装或配置 `make` 命令所导致的。通过检查安装和配置,通常可以解决这个问题,并使用 `make` 来进行项目的构建。 ### 回答3: make: command not found 是一个常见的错误信息,它表示在当前系统的命令路径中找不到 make 命令。 make 是一个用于构建软件的常用工具,通常用于自动化编译和链接过程,它使用命令文件 Makefile 来定义编译规则和依赖关系。 要解决这个错误,我们需要查看几个可能的原因: 1. make安装:在某些操作系统中,make 可能不是默认安装的。可以通过在命令行中运行 "sudo apt-get install make"(适用于Debian/Ubuntu系统)或 "sudo yum install make"(适用于CentOS/Fedora系统)来安装 make。 2. make 的路径未添加到环境变量:在某些情况下,即使 make 已经安装,系统的 PATH 环境变量可能没有包含 make 的路径。可以通过编辑文件 ~/.bashrc 或 ~/.bash_profile,在其中添加类似于 "export PATH=$PATH:/usr/bin" 的行来将 make 的路径添加到环境变量。 3. 系统不支持 make:如果您运行的是较为特殊的操作系统或嵌入式系统,可能不支持 make 命令。在这种情况下,您需要查找替代的构建工具或与开发人员社区取得联系以获取更多帮助。 总之,make: command not found 错误提示意味着系统无法找到 make 命令,可能需要安装 make 或将其路径添加到环境变量中。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一个处女座的程序猿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值