falha ao ligar 32bit app utilizando libexpat no Ubuntu 14.04 64bit

0

Estou tentando criar a versão i386 dos pacotes fontconfig e o script configure não consegue encontrar a biblioteca de expat, que está instalada para as duas arquiteturas. O comando de criação de aplicativos de teste com falha:

> gcc-4.8 -m32 -o conftest expat.test.c -lexpat 
/usr/bin/ld: cannot find -lexpat
collect2: error: ld returned 1 exit status
Exit 1
ldd: ./conftest: No such file or directory

No entanto, quando eu passo no caminho completo da biblioteca em vez de -lexpat, o comando é bem-sucedido:

> gcc-4.8 -m32 -o conftest expat.test.c /lib/i386-linux-gnu/libexpat.so.1 ; ldd conftest
    linux-gate.so.1 =>  (0xf7759000)
    libexpat.so.1 => /lib/i386-linux-gnu/libexpat.so.1 (0xf76f8000)
    libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf7549000)
    /lib/ld-linux.so.2 (0xf775a000)

O pacote lib32gcc-4.8-dev está instalado.

Isto pode estar relacionado ao fato de eu ter que fazer links simbólicos manuais i686-linux-objcopy e ditto-strip para / usr / bin / {objcopy, strip} e também estava faltando um i686-linux-gnu- comando gcc?

    
por RJVB 26.06.2014 / 10:38

2 respostas

1

Eu estava tendo exatamente o mesmo problema no Linux de 64 bits. Ele foi resolvido instalando expat1-dev para 32 bits

Aqui está o comando

sudo apt-get install libexpat1-dev:i386
    
por user328462 19.09.2014 / 11:54
1

Encontrei uma solução ainda melhor: criei meu próprio PPA no launchpad. Você percorre os bastidores apenas uma vez para configurar uma chave e instalar os pacotes adicionais necessários, mas depois pode confiar nos buildbots para instalar os requisitos de 32 bits sempre que forem necessárias construções de 32 bits. Eles resolveram esse problema usando máquinas virtuais de 64 bits e 32 bits, assim eles não se deparam com conflitos ou falhas multiarch.

    
por RJVB 19.09.2014 / 15:47