2013-10-28 12 views
7

Ho un cross-compiler nella mia cartella home su Ubuntu 13.10 (64-bit). L'ho scaricato here nella parte inferiore della pagina dove si dice "Prebuilt Toolchains". Quando provo a compilare qualcosa che mi dà questo:cc1: errore durante il caricamento delle librerie condivise: libmpc.so.2: impossibile aprire il file oggetto condiviso: nessun file o directory

cc1: error while loading shared libraries: libmpc.so.2: cannot open shared object file: No such file or directory 

Dopo goggling un po 'ho trovato this. Ho provato i comandi scritti dall'autore per entrare; ma non mi aiuteranno, visto che sto avendo questo problema con un cross-compilatore dal dizionario di casa, non dal compilatore di sistema. Qualcuno può aiutare?

EDIT: Qui è il file che sto cercando di cross-compilazione:

void print(char *message, int line,int ch){ 
    char *vm=(char *)0xb8000; 
    int i=(line*80*2); 
    i=i+(ch*2); 
    while(*message!=0){ 
    if (*message=='\n'){line++; 
    i=(line*80*2);} 
    else {vm[i]=*message; 
    i++; 
    vm[i]=0x07; 
    i++;} *message++;}} 

void kernel_main(){ 
print("Hello!\nHow do you like my kernel?",0,0);} 

Ho anche un file di assiemi scritto in AT & T sintassi che chiama kernel_main().

+1

Potete per favore fornire maggiori dettagli? Quale cross-compilatore, quale comando stai usando, che sistema stai, ecc. – Josh

+0

Ho appena scaricato un altro cross-compilatore dallo stesso posto e fa la stessa cosa. Dovrei provare Fedora invece di Ubuntu? O è solo stanco? –

+0

Ho appena provato su Fedora e non ha funzionato neanche. Qualcuno può provare il cross-compiler i386-elf da os-dev.org sul proprio hardware? Forse è solo il mio computer che ha questo problema per qualche motivo. –

risposta

8

Il mio errore è scomparso dopo aver rilasciato i seguenti comandi:

export LD_LIBRARY_PATH="/usr/local/lib" 
sudo ldconfig 

ldconfig è la magia.

+0

libstdC++. So.6.0.20-gdb.py non è un file ELF - ha i byte magici sbagliati all'inizio. –

1

È possibile trovare libmpc.so.3 in/usr/lib o/usr/lib64? Se hai trovato o la stessa cosa, è necessario sostituirlo con il file libmpc.so.2. Quel file può trovarsi in diverse versioni di Linux in basso.

+1

Nel mio caso ho appena collegato libmpc.so.2 a libmpc.so.3 e ricompilato e sembra funzionare anche. :-) – tudor

0

versione 2 di libmpc (cioè libmpc.2.dynlib) è compilato dalle versioni 0.7 - 0.9 dell'origine (trovare gli archivi di download su www.multiprecision.org). Le versioni precedenti alla 0.9 sembrano incompatibili con le versioni più recenti di GMP, quindi proverei a crearne una prima. Sono stato in grado di costruire e utilizzare 0.9 sul mio sistema OsX El Capitan dopo l'installazione di gcc 4.8, gmp, e MPFR:

brew tap homebrew/versions 
brew install gcc48 
brew install gmp 
brew install mpfr 

Poi nella mpc-0.9 dirctory:

./configure --with-gmp=/usr/local/Cellar/gmp/6.1.0 --with-mpfr=/usr/local/Cellar/mpfr/3.1.3 
make 
sudo make install 
0

ho risolto cc1: error while loading shared libraries: libmpc.so.2 come segue:

Installare libmpc3 tramite pronti contro termine e rendere link simbolico (metodo sporco, ma ha lavorato):

sudo apt-get install libmpc* 

o (se toolchain per i386):

sudo apt-get install libmpc*:i386 

in /usr/lib/i386-linux-gnu per i386 o in /usr/lib/x86_64-linux-gnu per AMD64:

sudo ln -s libmpc.so.3.0.0 libmpc.so.2 
Problemi correlati