소프트웨어 개발에서 좌절감 중 하나는 설치된 컴파일러에서 지원하지 않는 기능이 필요한 코드를 컴파일하려고 하는 것입니다. 예를 들어, 사용자가 C 98만 지원하는 이전 컴파일러를 사용하는 경우 C 11이 필요한 소프트웨어 애플리케이션이 올바르게 컴파일되지 않을 수 있습니다. 이러한 상황에서는 컴파일 시간이 아닌 CMake 실행 중에 컴파일이 실패할 수 있다면 도움이 될 것입니다.
CMake 버전 3.1.0 이상에서는 C 컴파일러가 지원하는 C 기능을 감지할 수 있습니다.
<code class="cmake">cmake_minimum_required(VERSION 3.1.0 FATAL_ERROR) project(foobar CXX) message("Your C++ compiler supports these C++ features:") foreach(i ${CMAKE_CXX_COMPILE_FEATURES}) message("${i}") endforeach()</code>
대부분의 경우 지정할 필요가 없습니다. C 기능을 직접 지정하는 대신 필요한 C 기능을 지정하고 CMake가 C 표준을 추론하도록 합니다. 그러면 CMake는 올바른 플래그(예: -std=c 11)를 사용하여 컴파일러가 호출되는지 확인합니다.
<code class="cmake"># Explicitly set C++ standard and required features add_executable(prog main.cc) set_property(TARGET prog PROPERTY CXX_STANDARD 11) set_property(TARGET prog PROPERTY CXX_STANDARD_REQUIRED ON)</code>
<code class="cmake"># Specify required C++ features and let CMake deduce the C++ standard target_compile_features(foobar PRIVATE cxx_strong_enums cxx_constexpr cxx_auto_type)</code>
위 내용은 CMake를 사용하여 컴파일러에서 C 11 지원을 감지하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!