Mengakses Pembolehubah CMake dalam Kod Sumber C
Masalah:
Bagaimanakah pembolehubah CMake, seperti LIBINTERFACE_VERSION, boleh diakses dan digunakan dalam kod sumber C?
Jawapan:
Pilihan 1: Menggunakan add_definitions
Contoh:
<code class="cmake">add_definitions( -DVERSION_LIBINTERFACE=${LIBINTERFACE_VERSION} )</code>
Pilihan 2: Menggunakan configure_file dengan templat fail pengepala
Contoh:
<code class="cmake">// version_config.h.in #ifndef VERSION_CONFIG_H #define VERSION_CONFIG_H // define your version_libinterface #define VERSION_LIBINTERFACE @LIBINTERFACE_VERSION@ // alternatively you could add your global method getLibInterfaceVersion here unsigned int getLibInterfaceVersion() { return @LIBINTERFACE_VERSION@; } #endif // VERSION_CONFIG_H</code>
Contoh:
<code class="cmake">configure_file( version_config.h.in ${CMAKE_BINARY_DIR}/generated/version_config.h ) include_directories( ${CMAKE_BINARY_DIR}/generated/ ) # Make sure it can be included...</code>
Contoh Penggunaan:
<code class="cpp">// Assuming version_config.h is included std::string version = VERSION_LIBINTERFACE;</code>
Nota:
Kaedah configure_file() adalah lebih meluas kerana ia membenarkan pembolehubah atau takrifan tambahan ditambahkan pada fail pengepala yang dijana.
Atas ialah kandungan terperinci Bagaimana untuk Mengakses Pembolehubah CMake dalam Kod Sumber C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!