«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как обнаружить поддержку компилятора C++11 в CMake?

Как обнаружить поддержку компилятора C++11 в CMake?

Опубликовано 6 ноября 2024 г.
Просматривать:677

How to Detect C  11 Compiler Support in CMake?

Обнаружение поддержки компилятора C 11 в CMake

Обзор

В этом руководстве мы исследуем методы автоматического обнаружения поддержки компилятором C 11 в CMake. CMake, предоставляющий всесторонний анализ как последней, так и предыдущих версий CMake.

CMake 3.1.0 и более поздних версий

В CMake версии 3.1.0 появилась мощная функция: обнаружение функций C, поддерживаемых компилятор. Это достигается с помощью команды cmake_minimum_required:

cmake_minimum_required(VERSION 3.1.0 FATAL_ERROR)

Указав минимальную версию CMake, вы получаете доступ к переменной CMAKE_CXX_COMPILE_FEATURES, в которой перечислены все поддерживаемые Особенности С. Это позволяет вам определить стандарт C для использования в вашем проекте.

Явное указание стандарта C

CMake позволяет явно установить стандарт C для целевого объекта с помощью свойств CXX_STANDARD и CXX_STANDARD_REQUIRED. Например:

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

Это гарантирует, что компилятор вызывается с правильными флагами, например -std=c 11.

Укажите необходимые функции C

Альтернативно вы можете указать необходимые функции C с помощью команды target_compile_features. Из этого списка CMake может вывести соответствующий стандарт C.

target_compile_features(foobar PRIVATE cxx_strong_enums cxx_constexpr cxx_auto_type)

Получите список поддерживаемых функций C с помощью CMAKE_CXX_KNOWN_FEATURES.

Заключение

CMake предоставляет несколько способов обнаружить поддержку компилятора C 11 и указать стандарт C. Такая гибкость позволяет создавать индивидуальные конфигурации проектов на языке C, обеспечивая совместимость и плавную компиляцию.

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3