CMake - set_property 找不到缓存变量

CMake - set_property could not find CACHE variable

免责声明: 我知道 this 问题。然而,OP 的需求与我的不同:他真正想要的是将应用程序移植到 Linux,因此答案就在那一行,而不是回答我想知道的:错误的原因。


我正在尝试按照 here and here

中的说明在 CMake GUI 中创建下拉列表

所以我有这个非常简单 CMakeLists.txt:

cmake_minimum_required(VERSION 3.6)

project(datasetprograms)

set(CMAKE_CXX_STANDARD 11)

#LINES TO MAKE THE GUI DROP-DOWN:
set(TARGET_ARCHITECTURE “arm” CACHE STRING “Architecture to compile to”)
set_property(CACHE TARGET_ARCHITECTURE PROPERTY STRINGS arm x86)

#Add subdirectories for each project
add_subdirectory(helloworld)

基本上我只是按照说明进行复制和粘贴。但是,我没有在 CMake GUI 中使用漂亮的下拉菜单,而是收到以下错误:

CMake Error at CMakeLists.txt:9 (set_property): set_property could not find CACHE variable TARGET_ARCHITECTURE. Perhaps it has not yet been created

问题:我做错了什么?

您可以使用 message() 检查变量 TARGET_ARCHITECTURE 的值,您会发现 CACHE 是一个 部分 该值。

这是因为您在 set() 命令中使用了不常见的双引号 ("),而是 特定语言 ().所以 CMake 将 set() 命令视为不是 CACHE 的命令。这是错误消息的原因。