Maison  >  Article  >  Opération et maintenance  >  Pourquoi Linux a-t-il besoin de compiler le code source ?

Pourquoi Linux a-t-il besoin de compiler le code source ?

青灯夜游
青灯夜游original
2023-03-17 10:21:252614parcourir

Raison : 1. Il existe de nombreuses versions de Linux, mais chaque version utilise des versions de logiciel ou de noyau différentes, et l'environnement dont dépend le package binaire peut ne pas nécessairement fonctionner normalement, donc la plupart des logiciels fournissent directement le code source pour la compilation et l'installation. 2. Facile à personnaliser pour répondre à différents besoins. 3. Il est pratique pour l'exploitation, la maintenance et la maintenance du développeur ; le code source peut être conditionné sous forme binaire, mais l'empaquetage de ce logiciel nécessitera un travail supplémentaire coûteux, y compris la maintenance, donc s'il s'agit de code source, le fabricant du logiciel le maintiendra directement. .

Pourquoi Linux a-t-il besoin de compiler le code source ?

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

Pourquoi Linux a-t-il besoin de compiler le code source

De manière générale, nos méthodes d'installation de logiciels incluent yum (rpm) et la compilation du code source. Alors pourquoi avons-nous besoin d'une compilation de code source pour installer certains logiciels ? Il y a plusieurs raisons de choisir le code source pour compiler et installer le logiciel :

  • pour répondre à différentes plates-formes d'exploitation. Nous avons de nombreuses versions de Linux, mais chaque version utilise des versions de logiciel ou de noyau différentes, et l'environnement dont dépendent nos packages binaires peut être différent. ne fonctionne pas correctement, donc la plupart des logiciels fournissent directement le code source !

  • Facile à personnaliser pour répondre à différents besoins. Plusieurs fois, le logiciel dont nous avons besoin peut être personnalisé. Je peux installer tout ce dont j'ai besoin. La plupart des codes binaires peuvent être installés en un seul clic, le degré de liberté n'est donc pas élevé !

  • Il est pratique pour l'exploitation, la maintenance et la maintenance des développeurs. Notre code source peut être empaqueté sous forme binaire, mais l'empaquetage de ce logiciel nécessitera un travail supplémentaire coûteux, y compris la maintenance, donc s'il s'agit de code source, le fabricant du logiciel le fera directement. Maintenance, mais s'il s'agit d'un binaire, elle est généralement fournie par le distributeur Linux.

Tutoriel de code source de compilation Linux

Presque tous les logiciels sous Linux sont sous licence GPL, donc presque tous les logiciels fourniront du code source.

Pour être exécuté sous Linux, un logiciel doit être un fichier binaire. Par conséquent, lorsque nous obtenons le code source du logiciel, nous devons le compiler dans un fichier binaire pour l'exécuter sous Linux.

1. Processus de compilation du logiciel

Il faut deux étapes pour compiler le code source dans un fichier binaire pouvant être exécuté sous Linux :

  • Utilisez le compilateur gcc pour compiler le code source dans un fichier objet.

  • Utilisez à nouveau gcc Le compilateur lie le fichier objet dans un fichier binaire

Ce processus semble simple, mais il ne l'est pas. Le code source d'un logiciel est souvent encapsulé dans plusieurs fichiers sources. De plus, ces fichiers présentent des dépendances complexes et la compilation doit être effectuée dans le strict respect de l'ordre spécifié, ce qui augmente sans aucun doute la difficulté de la compilation. Heureusement, la commande make peut nous aider à simplifier le processus de compilation.

L'ensemble du processus de compilation est condensé dans le fichier Makefile (indiquant à la commande make comment compiler et lier le programme). Lorsque la commande make est exécutée, make recherchera le fichier Makefile dans le répertoire actuel et terminera toute la compilation en fonction. aux exigences du dossier.

Le fichier Makefile est généré par la commande configure. Lors de l'exécution de la commande configure, configure générera dynamiquement un Makefile adapté à ce système en fonction de l'environnement système actuel pour être utilisé par la commande make.

2. Étapes d'installation du code source Linux

  • Obtenez le code source
    Téléchargez le code source du logiciel dans /usr/local/ et décompressez-le.

  • Affichez les fichiers INSTALL et README
    Après la décompression, affichez les fichiers INSTALL et README Ces deux fichiers décrivent en détail la méthode d'installation et les précautions de ce logiciel.

  • Créer un Makefile
    Exécutez la commande configure pour générer un Makefile.

  • Compile
    Exécutez la commande make clean;make pour compiler le code source dans un fichier binaire.
    PS : La commande make clean est utilisée pour effacer les fichiers cibles générés par la dernière compilation. Cette étape est facultative, mais afin de garantir le succès de la compilation, il est préférable de l'ajouter. Empêchez les échecs de compilation dus aux fichiers objets résiduels dans le logiciel.

  • Installation
    Exécutez la commande make install pour installer le fichier binaire compilé à l'étape précédente dans le répertoire spécifié.

3. Démo d'installation

1) Entrez /usr/local/ et créez le répertoire memcached :

cd /usr/local/
mkdir memcached

2) Téléchargez le code source de memcached

wget http://memcached.org/files/memcached-1.4.29.tar.gz

3. ) Décompressez le code source

tar -zxvf memcached-1.4.29.tar.gz

4) Exécutez configure pour générer un Makefile

./configure --prefix=/usr/local/memcached/

A ce moment, un Makefile sera généré dans le répertoire courant.

Remarque : Le paramètre –prefix spécifie le répertoire d'installation du logiciel. Lorsque la commande make install est exécutée, le logiciel sera installé dans ce chemin. Si ce paramètre n'est pas spécifié et que le préfixe n'est pas spécifié, le fichier exécutable sera placé par défaut dans /usr/local/bin, et la bibliothèque. Le fichier sera placé dans /usr/local/lib par défaut, le fichier de configuration est placé dans /usr/local/etc par défaut. D'autres fichiers de ressources sont placés dans /usr/local/share.

5) Exécutez make, lisez les instructions du Makefile et compilez le code source

make

此时make会读取Makefile文件,将源码编译成二进制文件,并存放在当前目录下。

执行这一步之前可以先进行清理作业:

make clean && make uninstall

6)执行make install,将软件安装至指定目录

make install

此时二进制文件会被安装到先前configure prefix参数设置的路径中去。
安装完成!

4、cmake命令(了解)

cmake就是一个与make同级别的编译工具,只不过它依靠的不是Makefile作为编译规则,而是根据CMakeLists.txt来编译的。
CMake是一个比make更高级的编译配置工具,它可以根据不同平台、不同的编译器,通过编写CMakeLists.txt,可以控制生成的Makefile,从而控制编译过程。

CMake自动生成的Makefile不仅可以通过make命令构建项目生成目标文件,还支持安装(make install)、测试安装的程序是否能正确执行(make test,或者ctest)、生成当前平台的安装包(make package)、生成源码包(make package_source)、产生Dashboard显示数据并上传等高级功能,只要在CMakeLists.txt中简单配置,就可以完成很多复杂的功能,包括写测试用例。
如果有嵌套目录,子目录下可以有自己的CMakeLists.txt。

相关推荐:《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!

Déclaration:
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