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
240 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!

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