|
Problema compilando para i386 no Debian Squeeze amd64
|
|
05/01/2012, 13:31
(Resposta editada pela última vez em: 05/01/2012 13:38 por jefferson_amarals.)
Resposta: #1
|
|||
|
|||
|
Criei uma aplicação em C++ no Debian Squeeze amd64 e estou tentando fazer um cross compiling para i386. O comando que estou utilizando para compilação e linking são respectivamente:
Código: g++ -I/usr/include/glib-2.0 -O0 -g3 -Wall -c -fmessage-length=0 `pkg-config --cflags gobject-2.0` `pkg-config --cflags gio-2.0` -m32 -fPIC -MMD -MP -MF"teste.d" -MT"teste.d" -o "teste.o" "../teste.cpp"Código: g++ `pkg-config --libs gobject-2.0` `pkg-config --libs gio-2.0` -m32 -shared -o "teste.so" ./teste.oComo pode-se ver eu estou utilizando o gio e o gobject. Compilando esse mesmo teste no Ubuntu 10.04 funciona sem nenhum problema, porém no Debian compila, mas é retornado o seguinte erro no momento do linking: Código: /usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.4.5/../../../libgobject-2.0.so when searching for -lgobject-2.0Já instalei os pacotes, gcc-multilib, g++-multilib, ia32-libs-dev e suas dependências. O que mais me intriga é a questão de funcionar plenamente no Ubuntu mas falhar no Debian. Agradeço qualquer ajuda. |
|||
|
06/01/2012, 13:53
Resposta: #2
|
|||
|
|||
|
RE: Problema compilando para i386 no Debian Squeeze amd64
Olá,
Parece que não está encontrando as libs, seria uma idéia executar o ldconfig. |
|||
|
07/01/2012, 10:44
Resposta: #3
|
|||
|
|||
|
RE: Problema compilando para i386 no Debian Squeeze amd64
Esqueci de falar outro detalhe. Se eu retirar o parâmetro -m32 funciona normalmente só que claro aí é compilado para x86_64.
Nunca usei esse ldconfig mas vou tentar. Valeu a dica. |
|||
|
09/01/2012, 17:36
(Resposta editada pela última vez em: 09/01/2012 17:46 por zencore.)
Resposta: #4
|
|||
|
|||
|
RE: Problema compilando para i386 no Debian Squeeze amd64
Isso já faz algum tempo talvez já tenha até resolvido o problema. Se você tem processador com suporte a tecnologia de virtualização é interessante instalar o KVM ( http://packages.debian.org/squeeze/kvm ) e instalar e virtualizar uma versão do Debian de 32 bits, o objetivo é facilitar sua vida ao resolver dependências de bibliotecas se você precisar.
Não conheço a organização do Ubuntu, mas no Debian notei que ele tem alguns arquivos .pc utilizados pelo pkg-config tanto no /usr/lib32/pkgconfig q Isso já faz algum tempo talvez já tenha até resolvido o problema. Se você tem processador com suporte a tecnologia de virtualização é interessante instalar o KVM ( http://packages.debian.org/squeeze/kvm ) e instalar e virtualizar uma versão do Debian de 32 bits, o objetivo é facilitar sua vida ao resolver dependências de bibliotecas se você precisar. O pkg-config pode estar procurando os arquivos .pc apenas no /usr/lib64/pkgconfig e não no /usr/lib32/pkgconfig ou não existem esses arquivos para as bibliotecas que você está utilizando em 32 bits(mais provável). Veja que o pacote ia32-libs-dev( http://packages.debian.org/squeeze/ia32-libs-dev ) faz uma sugestão ao pacote ia32-libs-gtk-dev (o ia32-libs-gtk inclui uma porrada de bibliotecas boas para rodar a maior parte dos programas de 32 bits) que deveria ser responsável por ter vários elementos para lhe ajudar numa compilação cruzada como mais arquivos .pc para 32 bits por exemplo, mas o ia32-libs-gtk-dev está faltando no Squeeze. |
|||
|
« Anteriores | Seguintes »
|
Usuários visualizando este tópico: 1 Visitantes






