"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como posso usar o CMake para detectar suporte ao C++ 11 em compiladores?

Como posso usar o CMake para detectar suporte ao C++ 11 em compiladores?

Publicado em 2024-11-10
Navegar:258

How Can I Use CMake to Detect C  11 Support in Compilers?

Detectando suporte C 11 em compiladores com CMake

Um dos desafios no desenvolvimento de software é garantir a compatibilidade com diferentes versões do compilador e seus conjuntos de recursos. Em particular, determinar se um compilador suporta C 11 pode ser crucial para projetos que dependem de recursos de linguagem mais recentes.

CMake fornece uma maneira conveniente de resolver esse problema. Com o CMake versão 3.1.0 e posterior, ele oferece a variável CMAKE_CXX_COMPILE_FEATURES, que lista os recursos C suportados pelo compilador ativo.

Na prática, em vez de confiar diretamente nesta variável, o CMake fornece mecanismos mais estruturados para especificar padrões e recursos da linguagem C.

Especificando o padrão C explicitamente

Uma opção é definir o CXX_STANDARD e [ Propriedades &&&]CXX_STANDARD_REQUIRED para seu destino CMake. Isso especifica explicitamente o padrão C desejado e se ele é obrigatório (se o compilador não suportar, a compilação falhará).

Por exemplo:

add_executable(prog main.cc)
set_property(TARGET prog PROPERTY CXX_STANDARD 11)
set_property(TARGET prog PROPERTY CXX_STANDARD_REQUIRED ON)

Especificando recursos C necessários

Como alternativa, você pode usar o comando

target_compile_features para especificar os recursos C usados pelo seu alvo. O CMake então deduzirá o padrão C apropriado desses recursos.

A propriedade global

CMAKE_CXX_KNOWN_FEATURES lista os recursos C disponíveis para consideração.

Por exemplo:

add_executable(foobar main.cc)
set(needed_features
    cxx_strong_enums
    cxx_constexpr
    cxx_auto_type)
target_compile_features(foobar PRIVATE ${needed_features})

Verificando recursos suportados

Para verificar os recursos C suportados do seu compilador:

cmake_minimum_required(VERSION 3.1.0 FATAL_ERROR)
project(foobar CXX)
message("Your C   compiler supports these C   features:")
foreach(feature in ${CMAKE_CXX_COMPILE_FEATURES})
    message(feature)
endforeach()
Esses métodos oferecem flexibilidade e controle sobre o padrão da linguagem C e os recursos usados ​​em seus projetos CMake.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3