Quelle est la commande Linux make ?

藏色散人
Libérer: 2023-03-25 09:14:40
original
8662 Les gens l'ont consulté

La commande Linux make est l'une des commandes les plus fréquemment utilisées par les administrateurs système et les programmeurs. Elle fait également référence à un « gestionnaire de compilation automatique », où « automatique » signifie qu'il peut découvrir automatiquement les fichiers les plus récents en fonction de l'horodatage du fichier. réduisez la charge de travail, en même temps, il peut effectuer une grande quantité de travail de compilation en lisant le contenu du fichier makefile.

Quelle est la commande Linux make ?

L'environnement d'exploitation de ce tutoriel : système linux5.9.8, ordinateur Dell G3.

Qu'est-ce que la commande Linux make ?

La commande make sous Linux est l'une des commandes les plus fréquemment utilisées par les administrateurs système et les programmeurs. Les administrateurs l'utilisent pour compiler et installer de nombreux outils open source via la ligne de commande, et les programmeurs l'utilisent pour gérer les problèmes de compilation de leurs projets volumineux et complexes.

1. Avantages de la syntaxe make

make project manager est un "gestionnaire de compilation automatique". Le "automatique" signifie ici qu'il peut découvrir automatiquement les fichiers les plus récents en fonction de l'horodatage des fichiers et réduire en même temps la charge de travail. effectue beaucoup de travail de compilation en lisant le contenu du fichier makefile. Les utilisateurs n'ont besoin d'utiliser qu'une seule fois une simple instruction de compilation, ce qui améliore considérablement l'efficacité réelle du projet.

Tout d'abord, imaginons un cas. Supposons que mon fichier exécutable contienne quatre fichiers de code source, à savoir main.c haha.c sin_value.c cos_value.c. Si vous souhaitez que ce programme s'exécute, vous devez le compiler comme ceci

.
[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
Copier après la connexion

Si possible, pouvez-vous effectuer toutes les actions ci-dessus pour lui en une seule étape ? Essayez de créer un makefile dans ce répertoire avec le contenu suivant :

# 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. # 看到了吧?!是否很方便呢?!
Copier après la connexion

make présente les avantages suivants :
• Simplifie les instructions qui doivent être émises lors de la compilation

• Si un certain code source est modifié une fois la compilation terminée ; fichier, alors make compilera uniquement le fichier modifié, et les autres fichiers objets ne seront pas modifiés ;

• Vous pourrez ensuite mettre à jour le fichier exécutable en fonction des dépendances ;

2. La syntaxe de base de make

Les règles de base de make sont :

目标(target): 依赖条件 1 依赖条件 2 <tab>   gcc -o 欲建立的执行文件 依赖条件 1 依赖条件 2
Copier après la connexion

Le makefile contient trois éléments : cible, dépendance et commande. Il n'y a qu'un seul objectif final dans le makefile, et les autres objectifs dépendent de cet objectif.

  La cible est les informations que nous voulons créer, et la condition de dépendance est les fichiers objets pertinents. La syntaxe de création d'un fichier exécutable est la ligne commençant par le bouton Portez-lui une attention particulière, "La ligne de commande doit commencer par la touche de tabulation" ! Ses règles sont essentiellement les suivantes :

• Le # dans le makefile représente un commentaire

les fichiers cibles) doivent être séparés par ":".

Vous pouvez utiliser les commandes simplifiées des variables automatisées par défaut du système dans le makefile :

$^:代表所有的依赖条件。
$@:代表目标文件
$<:代表一个目标文件
Copier après la connexion
Apprentissage recommandé : "
tutoriel vidéo Linux

"

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal