Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Menentukan Makro Prapemproses dalam CMake Menggunakan Pendekatan yang Disyorkan?

Bagaimana untuk Menentukan Makro Prapemproses dalam CMake Menggunakan Pendekatan yang Disyorkan?

Susan Sarandon
Susan Sarandonasal
2024-12-06 10:20:16891semak imbas

How to Define Preprocessor Macros in CMake Using the Recommended Approach?

Mentakrifkan Makro Prapemproses dalam CMake

Selalunya, pembangun memerlukan makro prapemproses ditetapkan untuk projek CMake mereka. Secara tradisinya, CMake menyediakan arahan add_definitions untuk tujuan ini. Walau bagaimanapun, sejak CMake versi 3.12, pendekatan baharu telah diperkenalkan dengan arahan berasingan untuk menyusun definisi, termasuk direktori dan pilihan pengkompil.

Menggunakan Pendekatan Baharu

Untuk tentukan makro prapemproses menggunakan sintaks baharu, gunakan arahan add_compile_definitions sebagai berikut:

add_compile_definitions(MACRO_NAME=VALUE)

Sebagai contoh, untuk mentakrifkan makro OPENCV_VERSION, anda akan menulis:

add_compile_definitions(OPENCV_VERSION=${OpenCV_VERSION})

Anda juga boleh mentakrifkan berbilang makro dalam satu arahan:

add_compile_definitions(OPENCV_VERSION=${OpenCV_VERSION} WITH_OPENCV2)

Kelebihan

Pendekatan baharu ini memberikan beberapa kelebihan berbanding arahan add_definitions:

  • Ia memberikan kawalan yang lebih besar ke atas takrifan yang digunakan pada bahagian berlainan projek anda.
  • Ia mengelakkan potensi untuk mentakrifkan makro yang tidak dimaksudkan untuk sesuatu tertentu. sasaran.
  • Ia sejajar dengan amalan terbaik untuk pembangunan CMake, seperti yang dibincangkan dalam dokumentasi CMake (https://cmake.org/cmake/help/latest/command/add_definitions.html).

Nota: Seperti yang dinyatakan dalam dokumentasi, tidak disyorkan untuk gunakan perintah add_definitions lagi.

Atas ialah kandungan terperinci Bagaimana untuk Menentukan Makro Prapemproses dalam CMake Menggunakan Pendekatan yang Disyorkan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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