Responder 
 
Avaliação do Tópico:
  • 0 Votos - 0 Média
  • 1
  • 2
  • 3
  • 4
  • 5
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
Dúvida Problema compilando para i386 no Debian Squeeze amd64
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"
e
Código:
g++ `pkg-config --libs gobject-2.0` `pkg-config --libs gio-2.0` -m32 -shared -o "teste.so"  ./teste.o

Como 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.0

Já 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.
Encontrar todas as respostas deste usuário
Citar esta mensagem em uma resposta
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.
Encontrar todas as respostas deste usuário
Citar esta mensagem em uma resposta
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.
Encontrar todas as respostas deste usuário
Citar esta mensagem em uma resposta
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.
Encontrar todas as respostas deste usuário
Citar esta mensagem em uma resposta
Responder 


Ir ao Fórum:


Usuários visualizando este tópico: 1 Visitantes

Entre em Contato | Fórum Debian | Voltar ao Topo | Voltar ao Conteúdo | Modo Leve (Arquivo) | Feeds RSS