Ошибка CMake: ItkVtkGlue

Я построил VTK-8.0.0 (используя msvc2017_64) и ITK-4.12.0 (используя msvc2017_64). Во время сборки ITK, как показано ниже:


1) здание ВТК (CMake3.9.0)

2) сборка ИТК (CMake3.9.0): Module_ITKVtkGlue + VTK_DIR this path C:\VTK\8.0.0\build\msvc2017_64

3) Компиляция VTK с помощью msvc2017 (в режиме Release)

4) Создайте новую переменную среды VTK_DIR со значением C:\VTK\8.0.0\build\msvc2017_64

5) Добавляем в путь: %VTK_DIR%\bin\Release

6) Компиляция ITK с помощью msvc2017 (в режиме Release)

7) Создание новой переменной окружения ITK_DIR со значением C:\ITK\4.12.0\build\msvc2017_64

8) Добавляем в путь: %ITK_DIR%\bin\Release


И теперь я хочу собрать и скомпилировать очень простой проект по ссылке ниже: https://itk.org/Wiki/ITK/Examples/IO/ImageToVTKImageFilter

однако я не могу настроить проект, получая следующую ошибку в CMake:

***************************************************************

CMake Error at C:/ITK/4.12.0/build/msvc2017_64/lib/cmake/ITK-4.12/Modules/ITKVtkGlue.cmake:14 (set):
  Syntax error in cmake code at

    C:/ITK/4.12.0/build/msvc2017_64/lib/cmake/ITK-4.12/Modules/ITKVtkGlue.cmake:14

  when parsing string

    C:\VTK\8.0.0\build\msvc2017_64

  Invalid escape sequence \V
Call Stack (most recent call first):
  C:/ITK/4.12.0/src/CMake/ITKModuleAPI.cmake:54 (include)
  C:/ITK/4.12.0/src/CMake/ITKModuleAPI.cmake:26 (itk_module_load)
  C:/ITK/4.12.0/src/CMake/ITKModuleAPI.cmake:84 (_itk_module_config_recurse)
  C:/ITK/4.12.0/build/msvc2017_64/ITKConfig.cmake:74 (itk_module_config)
  CMakeLists.txt:6 (find_package)


Configuring incomplete, errors occurred!
See also "C:/new_dev/tests/ImageToVTKImageFilter/build/CMakeFiles/CMakeOutput.log".
***************************************************************

Чтобы решить эту проблему, сначала я попытался добавить запись с путем ItkVtkGlue, но была достигнута та же ошибка. Затем я создал ItkVtkGlue.lib отдельно и добавил новую переменную среды ItkVtkGlue_DIR со значением C:\ItkVtkGlue\build\Release, а также добавил к пути и снова создал запись для ItkVtkGlue, но получил ту же ошибку.

Буду признателен за любую помощь... С нетерпением жду вашего совета...


person ir0098    schedule 28.07.2017    source источник
comment
Create a new environment variable VTK_DIR with the value 'C:\VTK\8.0.0\build\msvc2017_64' — при задании переменных пути для CMake не используйте в них обратную косую черту, вместо этого используйте прямую косую черту: C:/VTK/8.0.0/build/msvc2017_64.   -  person Tsyvarev    schedule 28.07.2017
comment
Возможный дубликат Cmake error: Invalid escape sequence \U   -  person Tsyvarev    schedule 28.07.2017
comment
Во-первых, спасибо, я это сделал, опять та же ошибка. пожалуйста, взгляните на ibb.co/cZNr9k *** просто приятное напоминание при создании индивидуального или vtk, все идет хорошо, но в случае с itk+vtk у меня такая ошибка...   -  person ir0098    schedule 28.07.2017
comment
К чему относится содержимое журнала ошибок строки (/ITK/4.12.0/build/msvc2017_64/lib/cmake/ITK-4.12/Modules/ITKVtkGlue.cmake:14)?   -  person Tsyvarev    schedule 28.07.2017
comment
Не могли бы вы взглянуть на: ufile.io/vh05b и ufile.io/ss2qb   -  person ir0098    schedule 28.07.2017
comment
CMakeCache.txt и вывод не интересны (по крайней мере, сейчас). Я спросил о конкретной строке в файле, которая существует только на вашем компьютере.   -  person Tsyvarev    schedule 28.07.2017
comment
извините, я загрузил не тот файл, вы можете найти CMakeError здесь: ufile.io/0ycrr   -  person ir0098    schedule 28.07.2017
comment
Файл /ITK/4.12.0/build/msvc2017_64/lib/cmake/ITK-4.12/Modules/IT‌​KVtkGlue.cmake не является журналом ошибок. Это обычный файл, но его содержимое зависит от вашей машины (точнее, от установки VTK).   -  person Tsyvarev    schedule 28.07.2017
comment
Извини, Цыварев, я понял, что ты имеешь в виду... Я вернусь через минуту...   -  person ir0098    schedule 28.07.2017
comment
Вы были правы, проблема была в адресе VTK в файле IKVtkGlue.cmake. На самом деле VTK_DIR был установлен в C:\VTK\8.0.0\build\msvc2017_64. II изменен на set(VTK_DIR C:/VTK/8.0.0/build/msvc2017_64), и теперь он работает. Спасибо Цывареву за ваши гиды.   -  person ir0098    schedule 28.07.2017
comment
Вы можете упростить себе жизнь, создав VTK и ITK как статические библиотеки, установив для BUILD_SHARED_LIBS значение OFF. И я думаю, что он выключен по умолчанию. Тогда нет необходимости возиться с переменными среды или добавлять что-либо в PATH.   -  person Dženan    schedule 28.07.2017
comment
Если бы вы использовали встроенный браузер путей cmake-gui, он бы записал путь с косой чертой в поле редактирования (а затем и в файл). Даже если вы копируете и вставляете путь с обратной косой чертой, CMake предлагает автоматически заполняемый путь с прямой косой чертой. Я надеюсь, что это облегчит вашу жизнь в будущем.   -  person Dženan    schedule 28.07.2017


Ответы (1)


Проблема вернулась к VTK_DIR, который был определен как "\". Сначала я попытался заменить все "\" в переменной окружения VTK_DIR на "/", но это привело к той же ошибке. Затем я определил VTK_DIR как запись в CMake, и был выделен путь с «/», снова та же ошибка. На самом деле проблема была из-за ITKVtkGlue.cmake. VTK_DIR был установлен "\", и я вручную заменил их на "/", и теперь ITK+VTK идет хорошо...

person ir0098    schedule 28.07.2017