【发布时间】:2022-03-26 09:52:42
【问题描述】:
当试图在 config.h 中定义项目版本变量以包含在源文件中时,CMake 没有定义它们
CMakeLists.txt 看起来像这样
cmake_minimum_required(VERSION 3.0)
project(podder VERSION 1.0 LANGUAGES CXX)
configure_file(config.h.in config.h ESCAPE_QUOTES)
config.h.in
#ifndef HAVE_CONFIG_H
#define HAVE_CONFIG_H
#cmakedefine ${CMAKE_PROJECT_VERSION}
#endif
而生成的 config.h 是这样的
#ifndef HAVE_CONFIG_H
#define HAVE_CONFIG_H
/* #undef */
#endif
【问题讨论】:
-
如果您改用
#cmakedefine CMAKE_PROJECT_VERSION会怎样? -
另外,变量是
PROJECT_VERSION,而不是CMAKE_PROJECT_VERSION。 -
使用 PROJECT_VERSION 没有区别,
#cmakedefine CMAKE_PROJECT_VERSION只会产生#define CMAKE_PROJECT_VERSION -
#cmakedefine ${PROJECT_VERSION}怎么样?