Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Mengesan Sokongan C 11 dalam Pengkompil Anda dengan CMake?
Salah satu kekecewaan dalam pembangunan perisian ialah cuba menyusun kod yang memerlukan ciri yang tidak disokong oleh pengkompil yang dipasang. Sebagai contoh, aplikasi perisian yang memerlukan C 11 mungkin tidak menyusun dengan betul jika pengguna mempunyai pengkompil lama yang hanya menyokong C 98. Dalam keadaan sedemikian, adalah berguna jika kompilasi boleh gagal semasa CMake dijalankan dan bukannya pada masa penyusunan.
CMbuat versi 3.1.0 dan kemudiannya membenarkan pengesanan ciri C yang disokong oleh pengkompil 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>
Dalam kebanyakan kes, anda tidak perlu menentukan ciri C secara langsung tetapi sebaliknya nyatakan ciri C yang diperlukan dan biarkan CMake menyimpulkan piawaian C. CMake kemudiannya akan memastikan bahawa pengkompil digunakan dengan bendera yang betul (cth., -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>
Atas ialah kandungan terperinci Bagaimana untuk Mengesan Sokongan C 11 dalam Pengkompil Anda dengan CMake?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!