[英]CMake not defining variables
當嘗試在 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)
配置.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
你想要的是
#ifndef HAVE_CONFIG_H
#define HAVE_CONFIG_H
#cmakedefine PROJECT_VERSION ${PROJECT_VERSION}
#endif
語法為#cmakedefine VAR ...
,其中VAR
是變量名(不帶$()
),表達式...
被求值,請參見configure_file() 。 如果未定義變量VAR
或其值為假,則將其替換為/* #undef VAR */
。
您應該使用#define @CMAKE_PROJECT_VERSION@
而不是#cmakedefine ${CMAKE_PROJECT_VERSION}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.