Heim >Backend-Entwicklung >C++ >Wie erkennt man mit CMake die C 11-Unterstützung in Ihrem Compiler?
Eine der Frustrationen bei der Softwareentwicklung ist der Versuch, Code zu kompilieren, der eine Funktion erfordert, die vom installierten Compiler nicht unterstützt wird. Beispielsweise könnte eine Softwareanwendung, die C 11 erfordert, möglicherweise nicht korrekt kompiliert werden, wenn der Benutzer einen älteren Compiler hat, der nur C 98 unterstützt. In einer solchen Situation wäre es hilfreich, wenn die Kompilierung während der CMake-Ausführung und nicht zur Kompilierungszeit fehlschlagen könnte.
Mit CMake Version 3.1.0 und höher können Sie erkennen, welche C-Funktionen ein C-Compiler unterstützt.
<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>
In den meisten Fällen müssen Sie keine Angaben machen die C-Funktionen direkt, sondern geben Sie stattdessen die erforderlichen C-Funktionen an und lassen Sie CMake den C-Standard ableiten. CMake stellt dann sicher, dass der Compiler mit den richtigen Flags aufgerufen wird (z. B. -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>
Das obige ist der detaillierte Inhalt vonWie erkennt man mit CMake die C 11-Unterstützung in Ihrem Compiler?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!