相关疑难解决方法(0)

设置和使用变量的CMake语法是什么?

我问这个是下次我使用CMake的时候提醒自己的.它永远不会坚持,谷歌的结果也不是很好.

在CMake中设置和使用变量的语法是什么?

cmake

143
推荐指数
3
解决办法
11万
查看次数

何时引用变量?

我是第一次写CMake宏,我很难理解变量是如何工作的.最具体地说,${a}似乎有不同的含义"${a}".

例如:将列表传递给cmake宏

我无法理解何时应该添加引号,以及更重要的基本原则是什么.

variables macros cmake

32
推荐指数
1
解决办法
1万
查看次数

与STREQUAL失败的CMake比较空字符串

我一直认为,如果你想比较两个字符串(但不是变量),你需要做的就是引用它:

if("${A}" STREQUAL "some string")
Run Code Online (Sandbox Code Playgroud)

但现在我发现这段代码有时打印出来oops:

cmake_minimum_required(VERSION 2.8)

if("d" STREQUAL "")
  message("oops...")
endif()
Run Code Online (Sandbox Code Playgroud)

可能是它的错误(因为它用Xcode打印,但不是用make打印)?还是有一些特殊的变量?

  • cmake:2.8.12,2.8.11.2
  • xcode:4.6.2,5.0.1

更新

有没有描述问题的命令字符串:

string(COMPARE EQUAL "${A}" "" result)
if(result)
  message("...")
endif()
Run Code Online (Sandbox Code Playgroud)

更新2

我期望从CMake 3.1.0开始实现的行为(参见CMP0054).

3.0.2 测试的输出:

CMake version: 3.0.2
Quoted test
Surprise!
Unquoted test
Surprise!
Run Code Online (Sandbox Code Playgroud)

3.1.0 测试的输出:

CMake version: 3.1.0
Quoted test
OK
Unquoted test
Surprise!
Run Code Online (Sandbox Code Playgroud)

cmake

26
推荐指数
2
解决办法
2万
查看次数

标签 统计

cmake ×3

macros ×1

variables ×1