2009-02-11 7 views
6

Sto cercando di compilare una versione del mio software per una piattaforma a 64 bit. Posso avere la versione a 32 bit e 64 bit di libstdC++ installata sulla stessa macchina senza troppe preoccupazioni per rompere la mia installazione di Linux. The Os è ubuntu a 32 bit.libstdC++ versione a 64 bit e 32 bit sulla stessa macchina

Non ho eseguito il cross compilazione prima e volevo solo verificare che se avessi impostato CFLAGS e LDFLAGS per la CPU appropriata, dovrei essere ok una volta che avrò installato le versioni corrette di libstdC++.

Ho controllato una versione a 64 bit di Ubuntu ma questo ha un link simbolico

lib64 -> lib

questo sarebbe rovinare un sacco, se questo è il caso su una macchina a 32 bit anche qualcuno sa come risolvere la questione ?

sto colpendo il seguente errore al momento

[exec] /usr/bin/ld: skipping incompatible /usr/lib/gcc/i486-linux-gnu/4.2.4/libstdc++.so 
[exec] /usr/bin/ld: skipping incompatible /usr/lib/gcc/i486-linux-gnu/4.2.4/libstdc++.a 
when searching for -lstdc++ [exec] /usr/bin/ld: skipping incompatible 

e così via fino

[exec] /usr/bin/ld: cannot find -lstdc++ 
[exec] collect2: ld returned 1 exit status 

che sembra essere dovuto al fatto che io non ho la versione a 64 bit di libstdC++

+0

per qualche ragione sembra che alcuni, se non tutti, I distribuzioni Unbuntu mancano lib64. Non usarlo da solo, ma domande simili sono state poste qui sulle librerie a 64 bit. Comunque tucano hanno entrambi installato, nessun problema in teoria. –

risposta

4

Certo che puoi.

Basta inserirli rispettivamente in /usr/lib e /usr/lib64.

non può controllare su Ubuntu, ma su Fedora ci arrivano proprio dai pacchetti:

[~#] repoquery -q -l libstdc++.i386 
/usr/lib/libstdc++.so.6 
/usr/lib/libstdc++.so.6.0.10 

[~#] repoquery -q -l libstdc++.x86_64 
/usr/lib64/libstdc++.so.6 
/usr/lib64/libstdc++.so.6.0.10 
+1

Sarò pronto a fargli sapere se questo accade di default su ubuntu? –