我发现"["和"]"可能在分号列表中有特殊含义CMake.当我尝试此代码时CMakeLists.txt:
set(XX "a" "b" "[" "]")
message("${XX}")
foreach(x ${XX})
message("--> ${x}")
endforeach()
Run Code Online (Sandbox Code Playgroud)
我期待结果:
a;b;[;]
--> a
--> b
--> [
--> ]
Run Code Online (Sandbox Code Playgroud)
但是我得到了这个:
a;b;[;]
--> a
--> b
--> [;]
Run Code Online (Sandbox Code Playgroud)
我没有找到任何关于"["和"]"用法的文档.是否可以逃避这些角色,以便获得预期的结果?我在用CMake 2.8.12.2.谢谢你的帮助 :)
根据文档,方括号肯定有特殊含义:
注意: 3.0 之前的 CMake 版本不支持括号参数。他们将左括号解释为未引用参数的开始。
所以问题是混合引用和未引用的参数。您的情况的可能解决方法是在初始化中将左方括号替换为其他内容,然后将其替换回来,如下所示:
CMAKE_MINIMUM_REQUIRED (VERSION 2.8.11)
PROJECT (HELLO NONE)
SET(XX a b BRACKET ])
MESSAGE("${XX}")
FOREACH(x ${XX})
STRING(REGEX REPLACE "BRACKET" "[" x ${x})
MESSAGE("--> ${x}")
ENDFOREACH()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
828 次 |
| 最近记录: |