千家信息网

Linux中的make命令怎么用

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章给大家分享的是有关Linux中的make命令怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。在linux系统中make是一个非常重要的编译命令,不管是自己进行项
千家信息网最后更新 2026年11月01日Linux中的make命令怎么用

这篇文章给大家分享的是有关Linux中的make命令怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

在linux系统中make是一个非常重要的编译命令,不管是自己进行项目开发还是安装应用软件,我们都经常要用到make或makeinstall。利用make工具,我们可以将大型的开发项目分解成为多个更易于管理的模块。

Linux make命令实例

下面是本文所使用的测试环境:

 OS —— Ubunut 13.04  Shell —— Bash 4.2.45  Application —— GNU Make 3.81

下面是工程的内容:

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

下面是 Makefile 的内容:

 all: test    test: test.o anotherTest.o      gcc -Wall test.o anotherTest.o -o test    test.o: test.c      gcc -c -Wall test.c    anotherTest.o: anotherTest.c      gcc -c -Wall anotherTest.c    clean:      rm -rf *.o test

现在我们来看 Linux 下一些 make 命令应用的实例:

1. 一个简单的例子

为了编译整个工程,你可以简单的使用 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 都被删除了。

2. 通过 -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命令怎么用"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

命令 文件 编译 目录 目标 内容 例子 工程 这是 实例 实际 更多 篇文章 项目 切换 应用 开发 输出 不同 不错 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 中智农互联网科技 广东猪兼强互联网科技有限公司 互联网科技工作委员会副主任毛军 河南真二互联网科技有限公司 奇酷互联网科技公司 凡科互联网科技 狮子座互联网科技有限公司 长亮科技互联网金融 互联网金融和金融科技 美国互联网前沿科技 阿里巴巴算科技企业还是互联网 栖莱科技互联网股份有限公司 全球顶尖互联网科技公司 湖北码尼互联网科技有限公司电话 宝灵互联网科技有限公司 智腾互联网科技有限公司 乌苏新华互联网科技做什么的 北京市互联网新科技 新氧科技和美国互联网有关系吗 兰石爱特工业互联网科技分公司 盈实互联网科技 天津摩尔互联网科技 顺玮阁互联网科技 哈尔滨新华互联网科技学院 来此购互联网科技有限公司 互联网科技和法律行业 工业互联网等科技实现智能化赋能 互联网科技融合创新 福建互联网展示科技馆设计 互联网科技创新方面的资料
0