libstdc ++ de 64 bits e versão de 32 bits na mesma máquina
-
22-08-2019 - |
Pergunta
Eu estou tentando atravessar compilar uma versão do meu software para uma plataforma de 64 bits. Posso ter a versão de 32 bits e de 64 bits do libstdc ++ instalados na mesma máquina sem demais preocupações de quebrar instalar o meu linux. O sistema operacional é 32 bits ubuntu.
Eu não cruza compilado antes e só queria ver que se eu definir o meu CFLAGS e LDFLAGS para a CPU apropriada eu deveria ser ok uma vez que tenho as versões corretas de libstdc ++ instalado.
Eu verifiquei uma versão de 64 bits do ubuntu no entanto, isso tem um link simbólico
lib64 -> lib
este iria atrapalhar lotes se este é o caso em uma máquina de 32 bits também Alguém sabe como resolver isso?
Eu estou batendo o seguinte erro no 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 assim por diante até
[exec] /usr/bin/ld: cannot find -lstdc++
[exec] collect2: ld returned 1 exit status
O que parece ser devido ao fato de eu não ter a versão de 64 bits do libstdc ++
Solução
Claro que você pode.
Apenas colocá-los em /usr/lib
e /usr/lib64
, respectivamente.
Não é possível verificá-lo na Ubuntu
, mas em Fedora
eles chegam lá desde os pacotes:
[~#] 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