"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo detectar la compatibilidad con el compilador C++ 11 en CMake?

¿Cómo detectar la compatibilidad con el compilador C++ 11 en CMake?

Publicado el 2024-11-06
Navegar:297

How to Detect C  11 Compiler Support in CMake?

Detección de compatibilidad con el compilador C 11 en CMake

Descripción general

En esta guía, exploramos métodos para detectar automáticamente si un compilador admite C 11 dentro CMake, que proporciona un análisis completo de las versiones más recientes y anteriores de CMake.

CMake 3.1.0 y posteriores

La versión 3.1.0 de CMake introdujo una característica poderosa: detectar las características de C compatibles con un compilador. Esto se logra mediante el comando cmake_minimum_required:

cmake_minimum_required(VERSION 3.1.0 FATAL_ERROR)

Al especificar la versión mínima de CMake, obtiene acceso a la variable CMAKE_CXX_COMPILE_FEATURES, que enumera todas las versiones admitidas. Características C. Esto le permite determinar el estándar C que usará en su proyecto.

Especificar el estándar C explícitamente

CMake le permite establecer explícitamente el estándar C para un destino usando las propiedades CXX_STANDARD y CXX_STANDARD_REQUIRED. Por ejemplo:

set_property(TARGET prog PROPERTY CXX_STANDARD 11)
set_property(TARGET prog PROPERTY CXX_STANDARD_REQUIRED ON)

Esto garantiza que el compilador se invoque con los indicadores correctos, como -std=c 11.

Especifique las características C requeridas

Alternativamente, puede especificar las características C requeridas usando el comando target_compile_features. De esta lista, CMake puede deducir el estándar C apropiado.

target_compile_features(foobar PRIVATE cxx_strong_enums cxx_constexpr cxx_auto_type)

Obtenga la lista de funciones C compatibles usando CMAKE_CXX_KNOWN_FEATURES.

Conclusión

CMake proporciona múltiples formas de detectar la compatibilidad con el compilador C 11 y especificar el estándar C. Esta flexibilidad permite configuraciones de proyectos C personalizadas, lo que garantiza compatibilidad y una compilación perfecta.

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3