Cara Moden untuk Menetapkan Bendera Pengkompil dalam Projek CMake Merentas Platform
Menggunakan Penjana dan Ekspresi CMake
CMake menyediakan beberapa kaedah untuk menetapkan bendera pengkompil dengan cara yang moden dan fleksibel. Satu pendekatan ialah menggunakan penjana dan ungkapan CMake, seperti:
<code class="cmake">string( APPEND _opts "$<IF:$<CXX_COMPILER_ID:MSVC>," "/W4;$<$<CONFIG:RELEASE>:/O2>," "-Wall;-Wextra;-Werror;" "$<$<CONFIG:RELEASE>:-O3>" "$<$<CXX_COMPILER_ID:Clang>:-stdlib=libc++>" ">" ) add_compile_options("${_opts}")</code>
Menggunakan add_compile_options()
Kaedah lain ialah menggunakan arahan add_compile_options() yang membolehkan anda menambah bendera pengkompil dengan cara yang lebih mudah dibaca dan konsisten:
<code class="cmake">if(MSVC) add_compile_options("/W4" "$<$<CONFIG:RELEASE>:/O2>") else() add_compile_options("-Wall" "-Wextra" "-Werror" "$<$<CONFIG:RELEASE>:-O3>") if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang") add_compile_options("-stdlib=libc++") else() # nothing special for gcc at the moment endif() endif()</code>
Amalan Terbaik
Apabila menyediakan projek CMake merentas platform, ia adalah amalan yang baik untuk mengikuti garis panduan ini:
Binaan Berbilang Sasaran
Untuk membina berbilang sasaran dalam direktori yang sama, buat konfigurasi binaan berasingan untuk setiap pengkompil dan gabungan konfigurasi, seperti:
Kemudian, anda boleh menggunakan make target untuk membina setiap konfigurasi:
Atas ialah kandungan terperinci Bagaimana untuk Menetapkan Bendera Pengkompil dalam Projek CMake Merentas Platform?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!