É possível compilar um projeto em 32 bits com cmake
e gcc
em um sistema de 64 bits ? Provavelmente é, mas como faço isso?
Quando tentei da maneira "ignorante", sem definir nenhum parâmetro / sinalizador / etc, basta definir LD_LIBRARY_PATH
para encontrar as bibliotecas vinculadas ~/tools/lib
que parece ignorá-lo e procurar apenas nos subdiretórios chamados lib64 .
Respostas:
fonte
-m32
aoCFLAGS
, provavelmente configurandoCMAKE_REQUIRED_FLAGS
.export
significa isso ? Onde ele pertence? Te cabeçalho arquivos? Omakefile
? Não, totalmente não é uma resposta para mim como iniciante.cmake
(no entanto, no seu caso, se você tiver um Makefile, você estaria usandomake
).Em resumo: use o
-m32
sinalizador para compilar um binário de 32 bits.Além disso, verifique se você tem as versões de 32 bits de todas as bibliotecas necessárias instaladas (no meu caso, tudo que eu precisava no Fedora era glibc-devel.i386)
fonte
sudo apt-get install gcc-multilib
Nas versões posteriores do CMake, uma maneira de fazer isso em cada destino é:
set_target_properties(MyTarget PROPERTIES COMPILE_FLAGS "-m32" LINK_FLAGS "-m32")
Não sei como fazer isso globalmente.
fonte
cmake -D CMAKE_CXX_FLAGS=-m32 . && make
Para C ++, você pode fazer:
Isso funciona com o cmake.
fonte
Uma maneira é configurar um ambiente chroot. O Debian tem várias ferramentas para isso, por exemplo, debootstrap
fonte
Para qualquer aplicação complexa, sugiro usar um contêiner lxc . Os contêineres lxc são 'algo no meio entre um chroot com esteróides e uma máquina virtual completa'.
Por exemplo, aqui está uma maneira de criar vinho de 32 bits usando lxc em um sistema Ubuntu Trusty:
Aqui está a página wiki sobre como criar o vinho de 32 bits em um host de 64 bits usando o lxc .
fonte
atom
editor de texto para 32 bits na máquina de 64 bits?