The linux make command is one of the most frequently used commands by system administrators and programmers. It also refers to an "automatic compilation manager", where "automatic" means that it can automatically discover and follow the file timestamp. New files to reduce the workload, and at the same time, it can perform a large amount of compilation work by reading the contents of the makefile file.
#The operating environment of this tutorial: linux5.9.8 system, Dell G3 computer.
What is the linux make command?
The make command under Linux is one of the most frequently used commands by system administrators and programmers. Administrators use it to compile and install many open source tools through the command line, and programmers use it to manage the compilation problems of their large and complex projects.
1. Advantages of make syntax
The make project manager is an "automatic compilation manager". The "automatic" here means that it can be based on the file timestamp. It automatically discovers updated files to reduce the workload. At the same time, it performs a large amount of compilation work by reading the contents of the makefile file. Users only need to use a simple compilation statement once, which greatly improves the actual efficiency of the project.
Let’s first imagine a case. Suppose my executable file contains four source code files, namely main.c haha.c sin_value.c cos_value.c. If you want to This program can run, so it needs to be compiled like this
[root@linux ~]# gcc -c main.c [root@linux ~]# gcc -c haha.c [root@linux ~]# gcc -c sin_value.c [root@linux ~]# gcc -c cos_value.c # 先以上面的动作制作出四个目标文件,然后再进行下面的动作: [root@linux ~]# gcc -o main main.o haha.o sin_value.o cos_value.o \ > -lm -L/usr/lib -L/lib # 这样就可以制作出 main 这个执行档啰!执行看看吧! [root@linux ~]# ./main HaHa! I'm the King of the world 0.706825 0.707388
If possible, can you complete all the above actions in one step? Try creating a makefile in this directory with the following content:
# 1. 先建立编译的规则 [root@linux ~]# vi makefile main: main.o haha.o sin_value.o cos_value.o gcc -o main main.o haha.o sin_value.o cos_value.o -lm # 注意:第二行的 gcc 之前是 <tab> 按键产生的空格喔! # 2. 尝试给他建立规则看看 [root@linux ~]# rm -f main *.o <==先将之前的目标文件去除 [root@linux ~]# make cc -c -o main.o main.c cc -c -o haha.o haha.c cc -c -o sin_value.o sin_value.c cc -c -o cos_value.o cos_value.c gcc -o main main.o haha.o sin_value.o cos_value.o -lm # 这个时候 make 会主动去读取 makefile 这个档案的内容, # 并根据内容直接去给他编译起相关的执行档啰! # 3. 如果再执行一次 make 会怎样?! [root@linux ~]# make make: `main' is up to date. # 看到了吧?!是否很方便呢?!
make has these benefits:
• Simplifies the instructions that need to be issued during compilation;
• If a source code file is modified after the compilation is completed, make will only compile the modified file, and other object files will not be changed;
• You can then rely on to update (update) the executable file.
2. Basic syntax of make
The basic rules of make are:
目标(target): 依赖条件 1 依赖条件 2 <tab> gcc -o 欲建立的执行文件 依赖条件 1 依赖条件 2
Contain three elements in the makefile : Target, dependency, command. There is only one final goal in the makefile, and all other goals are dependent on this goal.
The target is the information we want to create, and the dependency condition is the relevant object files. The syntax for creating an executable file is the line starting with the
• The # in the makefile represents a comment;
•
• The target (target) and the dependent file (that is, the target file) must be separated by ":".
You can use the system’s default automation variables to simplify commands in the makefile:
$^:代表所有的依赖条件。 $@:代表目标文件 $<:代表一个目标文件
Recommended learning: "linux video tutorial"
The above is the detailed content of What is the linux make command?. For more information, please follow other related articles on the PHP Chinese website!