Maison > Article > Opération et maintenance > De quels fichiers Linux o et a disposent-ils ?
Sous Linux, le fichier ".o" fait référence au fichier cible, c'est-à-dire le fichier informatique qui stocke le code cible ; le fichier cible contient le code machine (qui peut être directement exécuté par le processeur central de l'ordinateur) et le les données utilisées par le code lors de son exécution. Des informations de débogage supplémentaires sont également incluses. Le fichier ".a" fait référence à un fichier de bibliothèque statique, ce qui signifie que la fonction ou le processus à appeler est lié au fichier exécutable et devient une partie du fichier exécutable. Le code de la fonction appelée par le lien dynamique n'est pas copié dans le fichier. fichier exécutable de l'application, mais ajoute les informations de description de la fonction appelée.
L'environnement d'exploitation de ce tutoriel : système linux7.3, ordinateur Dell G3.
o est un objet, qui est équivalent au fichier obj compilé sous Windows, communément appelé fichier cible
a est archive, qui est équivalent au fichier lib compilé sous Windows VC, communément appelé fichier de bibliothèque statique ; plusieurs .a peuvent être liés pour générer un fichier exécutable exe. Le fichier
.o est un fichier de lien, .un fichier de bibliothèque statique est généré par le fichier .o et sert de programme externe de bibliothèque pour fournir des fonctions et des interfaces. Générez un fichier .o.
Le fichier o (fichier objet) sous Linux
Le fichier objet (fichier objet) est un fichier informatique qui stocke le code cible. Il est souvent "appelé" fichiers binaires (binaries). Le fichier objet contient du code machine (qui peut être exécuté directement par le processeur central de l'ordinateur) et des données utilisées par le code lors de son exécution, telles que des informations de relocalisation, telles que la table des symboles du programme (noms des variables et des fonctions) utilisée pour la liaison ou le débogage. , en plus de Inclut des informations de débogage supplémentaires.
Il existe 3 types de formulaires de fichiers objets sous Linux :
Fichier objet exécutable, fichier objet déplaçable et fichier objet partagé. Il existe également des fichiers correspondants appelés fichiers exécutables, fichiers objets et bibliothèques partagées. Ils ont simplement des termes différents et font référence à la même chose.
Fichier objet exécutable : contient du code binaire et des données et peut être exécuté directement en mémoire.
Fichier objet relocalisable : contient du code binaire et des données, qui peuvent être combinés avec d'autres fichiers objets relocalisables lors de la compilation pour créer un fichier objet exécutable.
Fichier objet partagé : il s'agit d'un fichier objet spécial déplaçable qui peut être chargé dynamiquement en mémoire et lié pendant le chargement ou l'exécution.
En fait, les compilateurs et les assembleurs génèrent des fichiers objets déplaçables (y compris des fichiers objets partagés). L'éditeur de liens génère un fichier objet exécutable.
Format de fichier objet sous Linux :
En raison des fichiers intermédiaires compilés (.obj sous Windows et .o sous Linux), des bibliothèques de liens dynamiques et des bibliothèques de liens statiques (.lib.dll sous Windows et Linux .a. donc) sous fichier exécutable, le contenu et la structure sont similaires à ceux du fichier exécutable, il est donc généralement stocké dans le même format de fichier que le fichier exécutable.
Le fichier a (fichier de bibliothèque statique) sous Linux
.a est un fichier de bibliothèque de liens statiques dans le système LINUX.
La liaison dite statique fait référence au fait de lier la fonction ou le processus à appeler dans le fichier exécutable et de devenir une partie du fichier exécutable. Lorsque plusieurs programmes appellent la même fonction, il y aura plusieurs copies de la fonction dans la mémoire, gaspillant ainsi de précieuses ressources mémoire. Les fichiers .so sont des fichiers de bibliothèque partagés (liés dynamiquement). Le code de fonction appelé par liaison dynamique n'est pas copié dans le fichier exécutable de l'application, mais seules les informations de description de la fonction appelée (souvent des informations de relocalisation) y sont ajoutées. Uniquement lorsque l'application est chargée Lorsque la mémoire commence à fonctionner, sous la gestion du système d'exploitation, une relation de lien est établie entre le programme d'application et le .so correspondant.
.un fichier est une combinaison de plusieurs fichiers .o. Le fichier .o est un fichier objet et son contenu est constitué d'instructions exécutables par machine telles que 01. Lorsque le programme doit être exécuté, il doit être lié. La liaison consiste à lier plusieurs fichiers .o dans un fichier exécutable. .
Recommandations associées : "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!