Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Build 如果生成路径包含空格,则CMAKE_BINARY_DIR未正确展开_Build_Cmake - Fatal编程技术网

Build 如果生成路径包含空格,则CMAKE_BINARY_DIR未正确展开

Build 如果生成路径包含空格,则CMAKE_BINARY_DIR未正确展开,build,cmake,Build,Cmake,当生成路径包含空间时,如何解决生成项目的问题 变量设置如下: set(CMAKE_BINARY_DIR C:/Program Files) set(CMAKE\u BINARY\u DIR@CMAKE\u BINARY\u DIR@) 并且被大量专门用于生成构建文件 文件(写入“${CMAKE\u BINARY\u DIR}/CMakeTmp/tcl\u version.tcl”) 它似乎没有转义空格字符(例如“~/myproject/”)。configure_file()(正如您在评论中提到

当生成路径包含空间时,如何解决生成项目的问题

变量设置如下:

set(CMAKE_BINARY_DIR C:/Program Files)
set(CMAKE\u BINARY\u DIR@CMAKE\u BINARY\u DIR@)

并且被大量专门用于生成构建文件

文件(写入“${CMAKE\u BINARY\u DIR}/CMakeTmp/tcl\u version.tcl”)

它似乎没有转义空格字符(例如“~/myproject/”)。

configure_file()
(正如您在评论中提到的那样)的工作原理有点像C预处理器,因为它是文本替换。因此,如果
CMAKE_BINARY_DIR
等于例如
C:/Program Files
,则配置的文件将如下所示:

set(CMAKE_BINARY_DIR C:/Program Files)
我相信很明显,将
CMAKE\u BINARY\u DIR
设置为2元素列表。在普通的CMake文件中,您需要添加引号;因此,对正在配置的源文件执行相同的操作:

set(CMAKE_BINARY_DIR "@CMAKE_BINARY_DIR@")

这是由
configure_file()
处理的文件吗?请将其添加到问题中,然后。