Компиляция с ошибкой CMake и ITK

Я пытаюсь скомпилировать код из здесь, используя CMake и ITK. но я сталкиваюсь с ошибкой.

В CMake я выбираю исходную папку в /utilities/ITKImageSeriesToVolume и папку сборки в /utilities/ITKImageSeriesToVolume/build. Однако это дает мне ошибку:

CMake Error at CMakeLists.txt:42 (find_package):
By not providing "FindITK.cmake" in CMAKE_MODULE_PATH this project has
asked CMake to find a package configuration file provided by "ITK", but
CMake did not find one.

Could not find a package configuration file provided by "ITK" with any of
the following names:

ITKConfig.cmake
itk-config.cmake

Add the installation prefix of "ITK" to CMAKE_PREFIX_PATH or set "ITK_DIR"
to a directory containing one of the above files.  If "ITK" provides a
separate development package or SDK, be sure it has been installed.

Я попытался установить переменную среды CMAKE_PREFIX_PATH, указывающую на корневую папку ITK, содержащую ITKConfig.cmake, но получаю ту же ошибку.

Надеясь, что кто-то может помочь, спасибо заранее.

РЕДАКТИРОВАТЬ: после установки ITK_DIR в корневую папку ITK я получаю:

CMake Error at D:/Apps/InsightToolkit/ITK/ITKConfig.cmake:48 (include):
include could not find load file:

D:/Apps/InsightToolkit/Build/ITKTargets.cmake
Call Stack (most recent call first):
CMakeLists.txt:42 (find_package)


CMake Error at D:/Apps/InsightToolkit/Source/CMake/ITKModuleAPI.cmake:56 (message):
No such module: "ITKDoubleConversion"
Call Stack (most recent call first):
D:/Apps/InsightToolkit/Source/CMake/ITKModuleAPI.cmake:26 (itk_module_load)
D:/Apps/InsightToolkit/Source/CMake/ITKModuleAPI.cmake:84 (_itk_module_config_recurse)
D:/Apps/InsightToolkit/ITK/ITKConfig.cmake:68 (itk_module_config)
CMakeLists.txt:42 (find_package)

person jarthur    schedule 15.12.2016    source источник
comment
Делайте точно так, как написано в инструкции. Я имею в виду Добавить префикс установки ITK в CMAKE_PREFIX_PATH или установить ITK_DIR в каталог, содержащий один из указанных выше файлов.   -  person drescherjm    schedule 15.12.2016
comment
Возможно, попробуйте часть ITK_DIR. Вы устанавливаете это в cmake-gui или ccmake.   -  person drescherjm    schedule 15.12.2016
comment
Спасибо, я не знал, что часть ITK_DIR была сделана внутри cmake-gui. После этого я получаю вторую ошибку, которую я обновлю в основном посте.   -  person jarthur    schedule 15.12.2016


Ответы (2)


У него есть простое исправление, как указано в ОШИБКЕ «Добавьте префикс установки «ITK» в CMAKE_PREFIX_PATH или установите «ITK_DIR» в каталог, содержащий один из вышеуказанных файлов. Если «ITK» предоставляет отдельный пакет разработки или SDK, обязательно он был установлен».

Убедитесь, что вы указали CMAKE_PREFIX_PATH и ITK в каталоге сборки ITK. Предполагается, что вы уже хотя бы один раз собирали ITK с помощью Cmake.

Шаги 1) Создайте исходную папку ITK.

2) Создайте папку сборки ITK.

3) Запустите CMake и выберите папки с исходным кодом и сборкой.

4) Выберите соответствующий компилятор, и если есть какие-либо проблемы с компилятором, обратитесь к этому обсуждению.

5) Настройте и сгенерируйте cmake.

6) Откройте файлы сборки в папке сборки с соответствующей IDE (используйте файл .sln, если используются компиляторы Visual Studio).

7) Сборка всего один раз на Visual Studio.

8) Теперь для вашего нового проекта выполните те же шаги и укажите CMAKE_PREFIX_PATH и ITK в каталоге сборки ITK.

И все должно работать. Удачи!!!

person Kushal    schedule 30.01.2017

Ваша сборка ITK кажется частично сломанной. Может попробовать восстановить? Если это не поможет, проверьте, включен ли ITK_USE_SYSTEM_DOUBLECONVERSION. Это означает не создавать библиотеку DoubleConversion, поставляемую с ITK, а использовать уже существующую в системе. Если его нет, у вас проблемы.

Кроме того, если ITK_BUILD_DEFAULT_MODULES не включено, вам нужно отдельно включить каждый модуль или группу модулей, которые вы хотите скомпилировать. В этом случае включите ITKDoubleConversion и любые дополнительные модули, которые требуются для этого кода.

person Dženan    schedule 15.12.2016