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

Barbara Streisand
Lepaskan: 2024-10-30 09:10:27
asal
667 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!

sumber:php.cn
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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!