Home  >  Article  >  Operation and Maintenance  >  What is the linux make command?

What is the linux make command?

藏色散人
藏色散人Original
2023-03-25 09:14:038352browse

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.

What is the linux make command?

#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 之前是  按键产生的空格喔! 
 
# 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    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 button! Pay special attention to him, "The command line must start with the tab key"! His rules are basically like this:

• The # in the makefile represents a comment;

needs to be the first character in the command line;

• 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!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Previous article:what is linux repoNext article:what is linux repo