Cmake 双引号是什么意思

Cmake 双引号是什么意思,cmake,Cmake,下面的代码来自一个CMakeLists.txt文件。它还构建并安装了一个使用cmake的库。我的问题是BINARY\u DIR和CONFIGURE\u COMMAND之间有什么区别,一个使用双引号,另一个不使用 ExternalProject_Add(simple_amqp GIT_REPOSITORY https://github.com/alanxz/SimpleAmqpClient.git GIT_TAG master SOURCE_DIR

下面的代码来自一个CMakeLists.txt文件。它还构建并安装了一个使用cmake的库。我的问题是
BINARY\u DIR
CONFIGURE\u COMMAND
之间有什么区别,一个使用双引号,另一个不使用

ExternalProject_Add(simple_amqp
  GIT_REPOSITORY    https://github.com/alanxz/SimpleAmqpClient.git
  GIT_TAG           master
  SOURCE_DIR        "${CMAKE_BINARY_DIR}/simpleamqp-src"
  BINARY_DIR        "${CMAKE_BINARY_DIR}/simpleamqp-build"
  CONFIGURE_COMMAND ${CMAKE_EXE} ../simpleamqp-src 
  BUILD_COMMAND     ${MAKE_EXE} -j4
  INSTALL_COMMAND   sudo ${MAKE_EXE} install
  TEST_COMMAND      ""
)

双引号用于转义CMake中的某些特殊字符,主要是分号。在CMake中,分号充当参数分隔符,即使它是由变量展开生成的。在变量
CMAKE_BINARY_DIR
包含分号的(不太可能)情况下,
${CMAKE_BINARY_DIR}/simpleamqp src
将被视为两个参数,而
“${CMAKE_BINARY_DIR}/simpleamqp src
将是一个参数

然而,考虑到CMake的语言有时有些晦涩难懂,真正的解释很可能更接近“有些行是从使用引号的代码中复制粘贴的,有些是由认为不需要它们的人编写的,并且…”



要了解有关CMake语法、引号和转义的更多信息,您可以阅读其文档,特别是。

双引号用于转义CMake中的某些特殊字符,主要是分号。在CMake中,分号充当参数分隔符,即使它是由变量展开生成的。在变量
CMAKE_BINARY_DIR
包含分号的(不太可能)情况下,
${CMAKE_BINARY_DIR}/simpleamqp src
将被视为两个参数,而
“${CMAKE_BINARY_DIR}/simpleamqp src
将是一个参数

然而,考虑到CMake的语言有时有些晦涩难懂,真正的解释很可能更接近“有些行是从使用引号的代码中复制粘贴的,有些是由认为不需要它们的人编写的,并且…”


要了解有关CMake语法、引用和转义的更多信息,您可以阅读其文档,特别是