Lamento que haya muchas preguntas similares, pero sí descubro que Google para consultas de CMake siempre produce escenarios similares pero no idénticos, comandos de CMake en conflicto y, por lo tanto, ¡en!La forma correcta de forzar una compilación de 32 bits utilizando CMake
Necesito forzar mi proyecto para compilar binarios de 32 bits porque tengo que enlazar con una biblioteca que solo está disponible como de 32 bits. Me diagnosticaron esta basado en mensajes de error como:
/usr/bin/ld: i386 architecture of input file `*external-32bit-lib*' is incompatible with i386:x86-64 output
Por lo que sé, yo debería, por tanto, utilizar:
set (CMAKE_CXX_FLAGS "-m32")
Esto cambia las cosas - ahora consigo varios errores como:
/usr/bin/ld: i386 architecture of input file `*project-output-lib*' is incompatible with i386:x86-64 output
Y aún así obtener los mismos errores para la biblioteca externa también. I piensa esto se debe a que el -m32
hizo que gcc generara binarios de 32 bits, pero ld todavía está tratando de obtener una salida de 64 bits? Seguir buscando en Google para este problema no dio ningún éxito, así que si alguien pudiera verificar que tengo razón y dar la forma correcta de hacerlo, ¡le estaría muy agradecido!
¡Muchas gracias!
Gracias -que bien puede ser el caso - pero ¿cómo Lo hago a través de CMake? ¿Y esta es la forma más sensata o "adecuada" de hacerlo? Lo hice por cierto :) – jazzbassrob
Respuesta actualizada. Ver enlace. Me refiero a limpiar tus manos, estás sucio :) –
Saludos, pero desafortunadamente el enlace no parece ayudar. Establecer LDFLAGS parece no tener ningún efecto ... – jazzbassrob