Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah CMake boleh Digunakan untuk Mengesan dan Mengkonfigurasi Keserasian C 11 Secara Automatik?

Bagaimanakah CMake boleh Digunakan untuk Mengesan dan Mengkonfigurasi Keserasian C 11 Secara Automatik?

Barbara Streisand
Lepaskan: 2024-10-30 09:10:27
asal
802 orang telah melayarinya

How can CMake be Used to Automatically Detect and Configure C  11 Compatibility?

Mengautomasikan Pengesanan Keserasian C 11 dalam CMake

Masalah:

Bagaimana CMake boleh digunakan untuk mengesan dan mengkonfigurasi keserasian C 11 secara automatik dalam projek?

Penyelesaian:

CMake Versi 3.1.0 dan Ke Atas:

Dengan CMake versi 3.1.0 atau lebih baru, coretan kod berikut membolehkan pengesanan ciri C yang disokong oleh pengkompil:

<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>
Salin selepas log masuk

Mengkonfigurasi Piawaian C:

Daripada pengesanan manual, CMake menyediakan dua kaedah untuk mengisytiharkan standard C untuk penyusunan:

Spesifikasi Standard Eksplisit:

Tetapkan sifat sasaran CXX_STANDARD dan CXX_STANDARD_REQUIRED untuk menyatakan secara eksplisit standard C:

<code class="cmake">set_property(TARGET prog PROPERTY CXX_STANDARD 11)
set_property(TARGET prog PROPERTY CXX_STANDARD_REQUIRED ON)</code>
Salin selepas log masuk

Pengesanan Standard Bergantung Ciri:

Menggunakan

<code class="cmake">target_compile_features(foobar PRIVATE
    cxx_strong_enums
    cxx_constexpr
    cxx_auto_type)</code>
Salin selepas log masuk
Pengesanan Standard Bergantung Ciri:

Menggunakan

features_compile_compile_compile > perintah, nyatakan ciri C yang diperlukan oleh projek. CMake akan menyimpulkan standard C yang sesuai daripada ciri-ciri ini:

Fungsi Tambahan:Harta global CMake CMAKE_CXX_KNOWN_FEATURES menyediakan senarai ciri C yang diketahui. Ini membolehkan untuk mengesan ciri khusus yang disokong oleh pengkompil.

Atas ialah kandungan terperinci Bagaimanakah CMake boleh Digunakan untuk Mengesan dan Mengkonfigurasi Keserasian C 11 Secara Automatik?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan