script make autotools configure automake

autotools - ¿Construye 32 bits en Linux de 64 bits utilizando un script configure de automake?



./configure make make install (5)

La respuesta de Jack está incompleta.

Necesita compatibilidad de compilador / libc para la compilación de 32 bits. En algunas distribuciones como Ubuntu, lo que necesita hacer es instalar paquetes gcc-multilib y / o g++-multilib :

sudo apt-get install gcc-multilib g++-multilib

Luego puede llamar a configure como dijo, especificando un host de 32 bits y pasando indicadores de compilación de 32 bits:

./configure --host=i686-linux-gnu "CFLAGS=-m32" "CXXFLAGS=-m32" "LDFLAGS=-m32"

Si no tiene multilib instalado, obtendrá un error como configure: error: C compiler cannot create executables al pasar el indicador -m32 .

Estoy usando un sistema de 64 bits, pero quiero un conjunto de binarios de 32 bits. ¿Qué opciones debo pasar a un script de configuración para generar un makefile de 32 bits / x86?


Mejor logré establecer un compilador personalizado en su lugar. De esta forma, todas las pruebas de configuración, incluso las que usan CFLAGS personalizadas, funcionaron correctamente:

./configure CC="gcc -m32" CXX="g++ -m32"

Todavía necesita versiones de 32 bits de todas las bibliotecas que utiliza la aplicación, por supuesto, por lo que cualquier error sobre bibliotecas faltantes se refiere a las de 32 bits.


Pasar el siguiente argumento para configurar el script me permitió construir la biblioteca de 32 bits en Linux de 64 bits

./configure --build=i686-pc-linux-gnu "CFLAGS=-m32" "CXXFLAGS=-m32" "LDFLAGS=-m32"


Suponiendo gcc / g ++:

CPPFLAGS=-m32 ./configure ...


Una forma alternativa a las cosas descritas anteriormente sería (si tiene) usar un compilador x86 dedicado. La línea de configuración sería así (nombré las herramientas x86 después del patrón "<nombre de herramienta> -x86"):

CC="/path/to/c/compiler/gcc-x86" CXX="path/to/cpp/compiler/g++-x86" LD="path/to/linker/ld-x86" ./configure