GNU/Linux >> Tutoriels Linux >  >> Linux

La compilation Gcc ne peut pas calculer le suffixe des fichiers objets :impossible de compiler

Ce problème est causé par un problème de chemin d'accès à la bibliothèque de liens dynamiques lorsque les programmes de test tentent d'établir un lien avec libmpc/libmpfr/libgmp.

Ajouter ci-dessous la variable d'environnement pour autoriser ld lien contre le bon donc fichier :

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/path/to/mpc/lib/

Ensuite, réessayez de compiler gcc.


"Construire GCC n'est pas trivial, mais ce n'est pas difficile si vous suivez attentivement les instructions. Beaucoup de gens se précipitent pour essayer de le construire sans lire correctement les documents d'installation et commettent une ou plusieurs de ces erreurs courantes :

  1. n'exécutez pas ./configure à partir du répertoire src de gcc (ceci n'est pas pris en charge) => vous devez exécuter configure depuis l'extérieur du répertoire source de gcc

  2. Remarque :si GCC est lié dynamiquement aux bibliothèques prérequises (GMP/MPFR/MPC), les bibliothèques partagées doivent se trouver dans le chemin de l'éditeur de liens dynamique (LD_LIBRARY_PATH), à la fois lors de la construction de gcc et lors de l'utilisation du compilateur installé."

Exemple simple (sans lien dynamique vers GMP/MPFR/MPC) :

tar xzf gcc-4.8.0.tar.gz
cd gcc-4.8.0
./contrib/download_prerequisites
cd ..
mkdir objdir
cd objdir
$PWD/../gcc-4.8.0/configure --prefix=/opt/gcc-4.8.0 
make
make install

Sources :Advogato Doc -GNU Doc


Linux
  1. Lien statique de la fonction de bibliothèque partagée dans gcc

  2. lier <iostream.h> sous Linux en utilisant gcc

  3. lien symbolique :trouver tous les fichiers liés à ce fichier

  4. libaio.so.1 :impossible d'ouvrir le fichier objet partagé

  5. `gcloud compute copy-files` :autorisation refusée lors de la copie de fichiers

Exemples de commandes Linux Objcopy pour copier et traduire des fichiers objets

nm :Commande pour lister les symboles dans les fichiers objets.

Comment puis-je trouver les fichiers d'en-tête du langage de programmation C sous Linux ?

ERREUR :ld.so :l'objet LD_PRELOAD ne peut pas être préchargé :ignoré

Clang peut-il compiler du code avec des bibliothèques .a compilées par GCC ?

Impossible de diviser, un objet de type octets est requis, pas 'str'