Saltar al contenido

¿Cómo detectar si MSVC de 64 bits con cmake?

Te damos la bienvenida a nuestra página web, en este sitio vas a hallar la solucíon que andabas buscando.

Solución:

La forma habitual de comprobar si está generando para una arquitectura de 64 bits es probar CMAKE_SIZEOF_VOID_P:

project( ... )
...

# won't work before project()!    
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
    # 64 bits
elseif(CMAKE_SIZEOF_VOID_P EQUAL 4)
    # 32 bits
endif()

Esta variable solo se establece después el project ¡mando!

Hay varias formas, también utilizadas por CMake, que buscarán "no 64Bit":

if(NOT "$CMAKE_GENERATOR" MATCHES "(Win64|IA64)")
    ...
endif()

if("$CMAKE_SIZEOF_VOID_P" STREQUAL "4")
    ...
endif()

if(NOT CMAKE_CL_64)
   ...
endif()

Referencias

  • CMAKE_GENERATOR
  • CMAKE_SIZEOF_VOID_P
  • CMAKE_CL_64

En versiones recientes de CMake / Visual Studio, el bitness se selecciona con CMAKE_GENERATOR_PLATFORM, que se puede especificar en la línea de comando con -A opción:

cmake -G "Visual Studio 16 2019" -A Win32 -DCMAKE_BUILD_TYPE=Release ..

Entonces, según esta característica, puede consultar el valor desde CMakeLists.txt:

if(NOT ("$CMAKE_GENERATOR_PLATFORM" STREQUAL "Win64"))
    ...
ENDIF()

Eres capaz de amparar nuestro ensayo ejecutando un comentario o valorándolo te damos la bienvenida.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada.