Ошибка Cmake: недопустимая escape-последовательность U

при запуске моего кода OpenCL в VC++ 10 с помощью CMake я получаю следующую ошибку:

CMake Error at CMakeLists.txt:6 (set): Syntax error in cmake code at
C:/Users/Shreedhar/Desktop/testCL/CMakeLists.txt:6

when parsing string
C:UsersShreedharDesktoptest_CLCMakeLists
Invalid escape sequence U

3 ответов


использовать прямые слеши / в пути

C:/Users/Shreedhar/Desktop/test_CL/CMakeLists

Если Вы читаете пользовательский ввод как переменные среды, вам нужно будет сделать это с помощью функции замены символов метода string.

string(REPLACE "\" "/" outputVar ${_inputVar})

для тех, кто получает эту ошибку в Windows:

ошибка CMake, например, в C:/Dev/cmake/share/cmake-3.8/Modules/FindBoost.cmake: 903 (список):
Синтаксическая ошибка в коде cmake при

C:/Dev/cmake/share/cmake-3.8/Modules/FindBoost.cmake:903

при разборе строки

C:\Dev\mongodb\src\boost/lib${_arch_suffix}-msvc-15.0

недопустимый символ escape '\D'. Стек вызовов (самый последний вызов): C:/Dev/cmake/share/cmake-3.8/Modules/FindBoost.с CMake:1379 (_Boost_UPDATE_WINDOWS_LIBRARY_SEarch_dirs_with_prebuilt_paths)
src/bsoncxx / CMakeLists.txt: 100 (find_package)

Не устанавливайте переменную среды BOOST_ROOT в значение с обратной косой чертой.