C 소스 코드 내에서 CMake 변수에 액세스
CMake로 작업할 때 프로젝트 전체 정보를 중앙 집중식 변수에 저장하는 것이 바람직한 경우가 많습니다. 이를 통해 쉽게 관리하고 액세스할 수 있습니다. 그러나 C 소스 코드 내에서 이러한 변수에 직접 액세스하는 것은 어려울 수 있습니다.
CMake 변수 선언
제공된 시나리오에서 CMake 변수 LIBINTERFACE_VERSION은 라이브러리의 변수를 저장하도록 정의됩니다. 버전 번호:
<code class="cmake">SET(LIBINTERFACE_VERSION 1 CACHE INTEGER "Version of libInterface")</code>
C에서 변수에 액세스
C에서 LIBINTERFACE_VERSION에 액세스하려면 다음 두 가지 방법 중 하나를 사용할 수 있습니다.
1. add_definitions
add_definitions() 함수를 사용하면 CMake 변수를 컴파일러에 정의로 전달할 수 있습니다.
<code class="cmake">add_definitions( -DVERSION_LIBINTERFACE=${LIBINTERFACE_VERSION} )</code>
C 코드 내에서 다음과 같이 변수에 액세스할 수 있습니다.
<code class="cpp">#include <version_config.h> unsigned int version = VERSION_LIBINTERFACE;</code>
2. configure_file
configure_file()을 사용하여 CMake 변수가 대체되는 헤더 파일 템플릿(예: version_config.h.in)을 만들 수도 있습니다.
<code class="cmake"># version_config.h.in #ifndef VERSION_CONFIG_H #define VERSION_CONFIG_H // Define version_libinterface #define VERSION_LIBINTERFACE @LIBINTERFACE_VERSION@ #endif // VERSION_CONFIG_H configure_file( version_config.h.in ${CMAKE_BINARY_DIR}/generated/version_config.h ) include_directories( ${CMAKE_BINARY_DIR}/generated/ )</code>
C 내에서 그런 다음 생성된 헤더 파일을 포함할 수 있습니다.
<code class="cpp">#include "version_config.h" unsigned int version = VERSION_LIBINTERFACE;</code>
이 접근 방식은 헤더 파일에 여러 정의 또는 변수를 통합할 수 있는 추가적인 유연성을 제공합니다.
위 내용은 C 소스 코드 내에서 CMake 변수에 액세스하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!