C 소스 코드에서 CMake 변수에 액세스
문제:
다음과 같은 CMake 변수는 어떻게 가능합니까? LIBINTERFACE_VERSION을 C 소스 코드 내에서 액세스하고 사용할 수 있습니까?
답변:
옵션 1: add_definitions 사용
예:
<code class="cmake">add_definitions( -DVERSION_LIBINTERFACE=${LIBINTERFACE_VERSION} )</code>
옵션 2: 헤더 파일 템플릿과 함께configure_file 사용
예:
<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>
예:
<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>
사용 예:
<code class="cpp">// Assuming version_config.h is included std::string version = VERSION_LIBINTERFACE;</code>
참고:
configure_file() 메서드는 생성된 헤더 파일에 추가 변수나 정의를 추가할 수 있으므로 확장성이 더 뛰어납니다.
위 내용은 C 소스 코드에서 CMake 변수에 액세스하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!