C 소스 코드에서 CMake 변수 읽기
많은 개발자는 버전 번호와 같은 구성 정보를 중앙 위치에 저장하는 것을 선호합니다. 관리의. CMake는 구성 파일 내에서 이러한 변수를 정의하기 위한 편리한 메커니즘을 제공합니다. 이 문서에서는 컴파일 중에 C 소스 코드 내에서 이러한 변수에 액세스하고 활용하는 방법을 살펴봅니다.
CMake 변수 정의
CMake 변수를 정의하려면 SET 명령을 사용합니다. 다음은 값이 1인 LIBINTERFACE_VERSION이라는 변수를 정의하는 예입니다.
SET(LIBINTERFACE_VERSION 1 CACHE INTEGER "Version of libInterface")
C 코드에 변수 전달
CMake 변수가 정의되면 다음을 수행할 수 있습니다. add_definitions 또는configure_file 명령을 사용하여 C 코드에서 사용할 수 있도록 만듭니다.
add_definitions 사용
add_definitions 명령은 CMake 변수를 C 코드에 전달하는 간단하고 직접적인 방법입니다. . 소스 코드에서 사용할 수 있는 전처리기 정의를 생성합니다.
add_definitions( -DVERSION_LIBINTERFACE=${LIBINTERFACE_VERSION} )
이렇게 하면 LIBINTERFACE_VERSION 값을 사용하여 전처리기 정의 VERSION_LIBINTERFACE가 생성되며, 이 정의는 C 코드 내에서 사용할 수 있습니다.
configure_file 사용
configure_file은 헤더 파일 템플릿을 생성하고 CMake를 사용하여 변수를 대체할 수 있는 보다 다양한 접근 방식입니다. 이 방법은 더 많은 유연성을 제공하며 다양한 구성으로 여러 헤더 파일을 생성하는 데 사용할 수 있습니다.
템플릿 헤더 파일 생성
먼저, 다음과 같은 템플릿 헤더 파일을 생성합니다. version_config.h.in, 다음 내용 포함:
#ifndef VERSION_CONFIG_H #define VERSION_CONFIG_H // define your version_libinterface #define VERSION_LIBINTERFACE @LIBINTERFACE_VERSION@ #endif // VERSION_CONFIG_H
이 템플릿은 LIBINTERFACE_VERSION 값을 사용하여 VERSION_LIBINTERFACE 전처리기 매크로를 정의합니다.
configure_file 사용
CMakeLists.txt 파일에서configure_file을 사용하여 version_config.h 헤더 파일을 생성합니다.
configure_file( version_config.h.in ${CMAKE_BINARY_DIR}/generated/version_config.h )
이 명령은 @LIBINTERFACE_VERSION@ 자리 표시자를 변수의 실제 값으로 대체하고 헤더 파일.
생성된 헤더 파일 포함
마지막으로 생성된 version_config.h 헤더 파일을 C 소스 코드에 포함해야 합니다.
#include <generated/version_config.h>
이러한 방법 중 하나를 사용하면 C 소스 코드에서 CMake 변수에 액세스하고 사용할 수 있습니다. add_definitions와configure_file은 모두 특정 요구사항과 프로젝트 구조에 따라 서로 다른 장점을 제공합니다.
위 내용은 C 소스 코드에서 CMake 변수에 액세스하고 사용하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!