Sous Linux, le fichier « .o » fait référence au fichier cible, et « .o » est l'abréviation d'objet ; le fichier « .o » sous Linux est équivalent au fichier « .obj » sous Windows, et le Le fichier cible contient le code machine et les données utilisées par le code pendant son exécution, telles que les informations de relocalisation, les tables de symboles de programme utilisées pour la liaison ou le débogage et d'autres informations de débogage.
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 objet
Le fichier objet (objectfile) est le fichier informatique qui stocke le. code cible. Il est souvent appelé « Créer des « binaires ». 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 au moment 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.
Connaissances approfondies :
Générer un fichier .o :
gcc -c test.o test.c
Générer un fichier .a :
ar cqs test.a test.o
.o est équivalent au fichier obj sous windows, un fichier .c ou .cpp correspond à un fichier .o
.a est une combinaison de plusieurs .o, utilisé pour la connexion statique, c'est-à-dire que plusieurs .a peuvent être liés pour générer un fichier exécutable
.so est un objet partagé, utilisé pour la connexion dynamique, et windows La dll est presque la même, elle n'est chargée que lorsqu'elle est utilisée
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!