GNU/Linux >> Linux Esercitazione >  >> Linux

La compilazione Gcc non può calcolare il suffisso dei file oggetto:impossibile compilare

Questo problema è causato dal problema del percorso della libreria di collegamento dinamico quando i programmi di test tentano di collegarsi a libmpc/libmpfr/libgmp.

Aggiungi sotto la variabile di ambiente per consentire ld link contro il so corretto file:

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

Quindi riprova a creare gcc.


"Costruire GCC non è banale, ma non è difficile se segui attentamente le istruzioni. Molte persone si affrettano a provare a compilarlo senza leggere correttamente i documenti di installazione e commettono uno o più di questi errori comuni:

  1. non eseguire ./configure da gcc src dir (questo non è supportato) => è necessario eseguire configure dall'esterno della directory dei sorgenti di gcc

  2. Nota:se GCC si collega dinamicamente alle librerie prerequisite (GMP/MPFR/MPC), le librerie condivise devono trovarsi nel percorso del linker dinamico (LD_LIBRARY_PATH), sia quando si compila gcc sia quando si utilizza il compilatore installato."

Esempio semplice (senza collegamento dinamico a 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

Fonti:Advogato Doc -GNU Doc


Linux
  1. Impossibile compilare Python.h – Errore di installazione di Websockify

  2. nm :comando per elencare i simboli nei file oggetto.

  3. Collegamento statico della funzione di libreria condivisa in gcc

  4. collegamento <iostream.h> in Linux usando gcc

  5. Come posso trovare i file di intestazione del linguaggio di programmazione C in Linux?

Esempi di comandi Linux Objcopy per copiare e tradurre file oggetto

collegamento simbolico:trova tutti i file che si collegano a questo file

libaio.so.1:impossibile aprire il file oggetto condiviso

ERRORE:ld.so:l'oggetto LD_PRELOAD non può essere precaricato:ignorato

Clang può compilare codice con le librerie .a compilate da GCC?

Rinomina più file per rimuovere il suffisso comune dai nomi dei file