수색…


소개

C ++ 프로젝트에서 CMake를 올바르게 사용하면 프로그래머는 실제 프로그램 자체에 대해 플랫폼, 프로그램 버전 번호 등에 더 집중할 수 있습니다. CMake를 사용하면 실제 프로그램에서 필요한 플랫폼이나 다른 전 처리기 태그를 쉽게 확인할 수있는 전 처리기 태그를 정의 할 수 있습니다. 로그 시스템에서 활용 될 수있는 버전 번호 등.

통사론

  • #define preprocessor_name "@ cmake_value @"

비고

모든 전 처리기가 config.h.in 정의되어 있어야한다는 것을 이해하는 것이 중요합니다. 전 처리기 태그는 일반적으로 프로그래머의 삶을 편하게하기 위해 사용되며 재량에 따라 사용해야합니다. 다른 시스템에서 정의되지 않은 동작으로 실행될 수 있기 때문에 미리 정의하기 전에 선행 처리 태그가 있는지 조사해야합니다.

CMake를 사용하여 C ++ 사용을위한 버전 번호 정의

가능성은 무한합니다. 이 개념을 사용하여 빌드 시스템에서 버전 번호를 가져올 수 있습니다. 당신의 프로젝트에서 그 버전 번호를 사용하십시오.

CMakeLists.txt

cmake_minimum_required(VERSION 3.8)
project(project_name VERSION "0.0.0")

configure_file(${path to configure file 'config.h.in'}
include_directories(${PROJECT_BINARY_BIN}) // this allows the 'config.h' file to be used throughout the program

...

config.h.in

#ifndef INCLUDE_GUARD
#define INCLUDE_GUARD

#define PROJECT_NAME "@PROJECT_NAME@"
#define PROJECT_VER  "@PROJECT_VERSION@"
#define PROJECT_VER_MAJOR "@PROJECT_VERSION_MAJOR@"
#define PROJECT_VER_MINOR "@PROJECT_VERSION_MINOR@"
#define PTOJECT_VER_PATCH "@PROJECT_VERSION_PATCH@"

#endif // INCLUDE_GUARD

main.cpp

#include <iostream>
#include "config.h"
int main()
{
    std::cout << "project name: " << PROJECT_NAME << " version: " << PROJECT_VER << std::endl;
    return 0;
}

산출

project name: project_name version: 0.0.0


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow