Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Mengesan Sokongan C 11 dalam Pengkompil Anda dengan CMake?

Bagaimana untuk Mengesan Sokongan C 11 dalam Pengkompil Anda dengan CMake?

Mary-Kate Olsen
Lepaskan: 2024-11-02 18:26:31
asal
311 orang telah melayarinya

How to Detect C  11 Support in Your Compiler with CMake?

Mengesan Sokongan C 11 Pengkompil 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.

Penyelesaian

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

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).

Mengisytiharkan Standard C Anda Secara Eksplisit

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

Menggunakan Ciri Kompilasi Sasaran

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

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!

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