Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/17.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
Windows 查找路径不';如果环境变量有空格,则不起作用_Windows_Cmake - Fatal编程技术网

Windows 查找路径不';如果环境变量有空格,则不起作用

Windows 查找路径不';如果环境变量有空格,则不起作用,windows,cmake,Windows,Cmake,我试图让我的cmake项目自动编译,但当我的路径包含空格时,我遇到了一些困难 这是我的命令行(windows命令提示符) 这是我的CMakeLists.txt文件: CMAKE_MINIMUM_REQUIRED (VERSION 2.6) PROJECT (CodeTrainerPlugins) MESSAGE("$ENV{CODETRAINER_PATH}") FIND_PATH (CODETRAINER_FRAMEWORK_PATH NAMES in

我试图让我的cmake项目自动编译,但当我的路径包含空格时,我遇到了一些困难

这是我的命令行(windows命令提示符)

这是我的CMakeLists.txt文件:

CMAKE_MINIMUM_REQUIRED (VERSION 2.6)
PROJECT (CodeTrainerPlugins)

MESSAGE("$ENV{CODETRAINER_PATH}")

FIND_PATH   (CODETRAINER_FRAMEWORK_PATH 
                NAMES include/common/ExportApi.h
                PATHS
                    ENV CODETRAINER_PATH
            )


if (CODETRAINER_FRAMEWORK_PATH)
    MESSAGE(STATUS "CodeTrainer Framework found at: ${CODETRAINER_FRAMEWORK_PATH}")
else()
    MESSAGE(FATAL_ERROR "CodeTrainer Framework not found")
endif()

ADD_SUBDIRECTORY(function)
ADD_SUBDIRECTORY(test)
以下是CODETRANER_PATH变量包含空格时的输出(请参见路径中的空格):

但当使用的路径没有空格时,一切正常(见下文):

你对如何解决这个问题有什么解决办法吗

我正在为Windows使用cmake 2.8.12

谢谢,
Iulian

我必须承认,我本以为这也会“起作用”,但看起来它实际上是
CODETRAINER\u路径
中的引号,当它有空格是问题的原因时

在定义环境变量时不要添加引号,或者修改CMake代码如下:

STRING(REPLACE "\"" "" CODETRAINER_PATH_WITHOUT_QUOTES $ENV{CODETRAINER_PATH})
FIND_PATH(CODETRAINER_FRAMEWORK_PATH 
          NAMES include/common/ExportApi.h
          PATHS ${CODETRAINER_PATH_WITHOUT_QUOTES}
          )
非常好的调查(+1)。干杯
C:\Code\codetrainerplugins-build>echo %CODETRAINER_PATH%
"C:\Code Trainer"
C:\Code\codetrainerplugins-build>
C:\Code\codetrainerplugins-build>cmake ..\codetrainerplugins
-- Building for: Visual Studio 10
"C:\Code Trainer"
CMake Error at CMakeLists.txt:16 (MESSAGE):
  CodeTrainer Framework not found


-- Configuring incomplete, errors occurred!
See also "C:/Code/codetrainerplugins-build/CMakeFiles/CMakeOutput.log".

C:\Code\codetrainerplugins-build>
C:\Code\codetrainerplugins-build>echo %CODETRAINER_PATH%
C:\CodeTrainer

C:\Code\codetrainerplugins-build>cmake ..\codetrainerplugins
C:\CodeTrainer
-- CodeTrainer Framework found at: C:/CodeTrainer
-- Configuring done
-- Generating done
-- Build files have been written to: C:/Code/codetrainerplugins-build

C:\Code\codetrainerplugins-build>
STRING(REPLACE "\"" "" CODETRAINER_PATH_WITHOUT_QUOTES $ENV{CODETRAINER_PATH})
FIND_PATH(CODETRAINER_FRAMEWORK_PATH 
          NAMES include/common/ExportApi.h
          PATHS ${CODETRAINER_PATH_WITHOUT_QUOTES}
          )