linux系统的编译命令是“Make”。在linux系统中,make是一个非常重要的编译命令,管理员用它通过命令行来编译和安装很多开源的工具,程序员用它来管理他们大型复杂的项目编译问题。Make被用于自动化编译大型程序的任务,它可以自动检测程序中需要重新编译的部分,并下发相应的编译指令。
Make简介
make是linux系统的实用程序。它被用来管理大型程序的自动编译任务,自动判断程序的哪个部分需要重新编译,并发送编译指令。虽然,我们最常见于C语言程序的编译。make不限于某一特定语言,凡是可以通过shell命令来运行编译器的语言都可以使用make。除此之外,你甚至可以用make描述任何构建任务,这些任务中,文件需要在其依赖的文件发生变动后自动更新。
Make如何工作的
Make命令对于不熟悉其背后机理的人来说,就像命令行参数一样接受目标。通常,这些操作被存储在名为“Makefile”的特殊文件中,并且与目标相对应。更多信息,阅读关于Makefiles如何工作的系列文章。
Make命令在第一次执行时,会扫描Makefile以查找目标和相应的依赖关系。如果这些依赖项也需要被编译成目标,就要继续扫描Makefile并建立它们的依赖关系,接着进行编译。一旦主要依赖项完成编译,就会编译主目标(这是通过make命令输入的)。
现在,假设你对某个源文件进行了修改,你再次执行make命令,它将只编译与该源文件相关的目标文件,因此,编译完最终的可执行文件节省了大量的时间。
>Make命令实例
下面是本文所使用的测试环境:
Application——GNUMake3.81
下面是工程的内容:
anotherTest.cMakefiletest.ctest.h
下面是Makefile的内容:
all:testtest:test.oanotherTest.o
gcc-Walltest.oanotherTest.o-otesttest.o:test.c
anotherTest.o:anotherTest.c
现在我们来看Linux下一些make命令应用的实例:
1.一个简单的例子
为了编译整个工程,你可以简单的使用或者在make命令后带上目标。
gcc-Walltest.oanotherTest.o-otest
你能看到make命令第一次创建的依赖以及实际的目标。
如果你再次查看目录内容,里面多了一些.o文件和执行文件:
anotherTest.canotherTest.oMakefiletesttest.ctest.htest.o
现在,假设你对test.c文件做了一些修改,重新使用make编译工程:
gcc-Walltest.oanotherTest.o-otest
你可以看到只有test.o重新编译了,然而另一个Test.o没有重新编译。
现在清理所有的目标文件和可执行文件test,你可以使用目标:
anotherTest.cMakefiletest.ctest.h
你可以看到所有的.o文件和执行文件test都被删除了。
2.通过-B选项让所有目标总是重新建立
到目前为止,你可能注意到make命令不会编译那些自从上次编译之后就没有更改的文件,如果你想覆盖make这种默认的行为,你可以使用-B选项。
make:Nothingtobedonefor`all’.$make-B
gcc-Walltest.oanotherTest.o-otest
3.使用-d选项打印调试信息
如果你想知道make执行时实际做了什么,使用-d选项。
Copyright(C)2006FreeSoftwareFoundation,Inc.
Thisisfreesoftware;seethesourceforcopyingconditions.
ThereisNOwarranty;notevenforMERCHANTABILITYorFITNESSFORA
Thisprogrambuiltforx86_64-pc-linux-gnu
Readingmakefile`Makefile’…
Consideringtargetfile`Makefile’.
Lookingforanimplicitrulefor`Makefile’.
Tryingpatternrulewithstem`Makefile’.
Tryingimplicitprerequisite`Makefile.o’.
Tryingpatternrulewithstem`Makefile’.
Tryingimplicitprerequisite`Makefile.c’.
Tryingpatternrulewithstem`Makefile’.
Tryingimplicitprerequisite`Makefile.cc’.
Tryingpatternrulewithstem`Makefile’.
Tryingimplicitprerequisite`Makefile.C’.
Tryingpatternrulewithstem`Makefile’.
Tryingimplicitprerequisite`Makefile.cpp’.
Tryingpatternrulewithstem`Makefile’.
这是很长的输出,你也看到我使用了命令来一页一页显示输出。
4.使用-C选项改变目录
你可以为make命令提供不同的目录路径,在寻找Makefile之前会切换目录的。
这是一个目录,假设你就在当前目录下:
filefile2frndfrnd1.cpplog1.txtlog3.txtlog5.txt
file1filenamewithspacesfrnd1frnd.cpplog2.txtlog4.txt
$make-Chttps://www.fruan.com/make-dir/
make:Enteringdirectory`/home/himanshu/practice/make-dir’
make:Nothingtobedonefor`all’.
make:Leavingdirectory`/home/himanshu/practice/make-dir
你能看到make命令首先切到特定的目录下,在那执行,然后再切换回来。
5.通过-f选项将其它文件看作Makefile
如果你想将重命名Makefile文件,比如取名为my_makefile或者其它的名字,我们想让make将它也当成Makefile,可以使用-f选项。
make-fmy_makefile
通过这种方法,make命令会选择扫描my_makefile来代替Makefile。
以上就是linux系统的编译命令怎么用的详细内容,更多请关注主机测评网其它相关文章!
本文来源:国外服务器--linux系统的编译命令怎么用(linux编译语句)
本文地址:https://www.idcbaba.com/guowai/3761.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 1919100645@qq.com 举报,一经查实,本站将立刻删除。



