Como posso construir e executar software de 32 bits em Debian de 64 bits? [duplicado]

1

Eu estou olhando para o desenvolvimento de um programa C ++ que precisa de uma biblioteca proprietária de 32 bits e que deve ser executado em Debian de 64 bits (jessie, amd64). Eu suponho que preciso criar um executável de 32 bits para poder usar essa biblioteca de 32 bits (ou existe uma maneira de usar essa biblioteca de um executável de 64 bits?)

Como posso construir meu programa em Debian de 64 bits? Ou devo usar uma máquina Debian de 32 bits para construí-la e depois transferir para o Debian de 64 bits?

Eu normalmente uso o cmake, se isso faz alguma diferença.

    
por Roel Schroeven 21.03.2017 / 10:20

1 resposta

5

Sim, para usar uma biblioteca de 32 bits, você precisa criar um binário de 32 bits.

No Debian 8 em amd64, você pode construir binários de 32 bits usando o gcc-multilib (para C ) ou g++-multilib (para C ++) e a opção -m32 do GCC.

Usando o CMake, imagino que adicionar -m32 aos sinalizadores seria suficiente. É possível definir o CMake para construções de 32 e 64 bits em um único projeto, mas é bastante complicado; veja rr ' CMakeLists.txt para um exemplo detalhado.

Para executar binários de 32 bits, você precisará ativar o suporte a vários arrays para i386:

sudo dpkg --add-architecture i386
sudo apt-get update

Em seguida, instale as bibliotecas apropriadas, começando com libc6:i386 .

    
por 21.03.2017 / 10:28