Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Mengakses Pembolehubah CMake dalam Kod C Anda?

Bagaimana untuk Mengakses Pembolehubah CMake dalam Kod C Anda?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-29 08:42:30937semak imbas

 How to Access CMake Variables in Your C   Code?

Mengakses Pembolehubah CMake dalam Kod C

Apabila bekerja dengan CMake, ia boleh memberi manfaat untuk menyimpan nilai yang kerap digunakan sebagai pembolehubah. Walau bagaimanapun, mengakses pembolehubah ini dalam kod sumber C boleh mencabar.

Satu pendekatan untuk menggunakan pembolehubah CMake dalam C ialah menggunakan fungsi add_definitions. Teknik ini membolehkan pemindahan pembolehubah sebagai definisi prapemproses:

<code class="cmake">add_definitions(-DVERSION_LIBINTERFACE=${LIBINTERFACE_VERSION})</code>

Seterusnya, dalam kod C, pembolehubah boleh diakses sebagai makro prapemproses:

<code class="c++">#if defined(VERSION_LIBINTERFACE)
    unsigned int libInterfaceVersion = VERSION_LIBINTERFACE;
#endif</code>

Sebagai alternatif, anda boleh memanfaatkan arahan configure_file untuk menjana templat fail pengepala yang merangkumi penggantian pembolehubah yang diperlukan. Sebagai contoh, cipta fail templat bernama version_config.h.in:

<code class="c++">#ifndef VERSION_CONFIG_H
#define VERSION_CONFIG_H

#define VERSION_LIBINTERFACE @LIBINTERFACE_VERSION@

#endif</code>

Dalam fail CMakeLists.txt, gunakan arahan configure_file:

<code class="cmake">configure_file(version_config.h.in ${CMAKE_BINARY_DIR}/generated/version_config.h)
include_directories(${CMAKE_BINARY_DIR}/generated/)</code>

Pastikan bahawa fail pengepala yang dihasilkan disertakan dalam fail sumber yang berkenaan.

Atas ialah kandungan terperinci Bagaimana untuk Mengakses Pembolehubah CMake dalam Kod C Anda?. 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