ITK:找不到ITKConfig.cmake

时间:2016-01-27 01:35:27

标签: cmake itk

我一直在尝试在新PC上设置ITK,并且当我在项目上运行CMake时遇到了问题。

我下载了ITK 4.8.2,将其解压缩,配置了CMake并一如既往地生成。但是,这次CMake会发出以下错误:

CMake Error at CMakeLists.txt:4 (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.

-- Configuring incomplete, errors occurred!

CMakeLists.txt文件非常好,只是为了确保正确设置cmake / ITK:

cmake_minimum_required(VERSION 2.8 FATAL_ERROR)
project(ITKTest)

find_package(ITK REQUIRED)
include(${ITK_USE_FILE})

add_executable(ITKTest main.cpp)

target_link_libraries(ITKTest ${ITK_LIBRARIES})

我添加了CMAKE_PREFIX_PATHITK_DIR作为附加条目,后者指向ITK文件夹的位置。但问题仍然存在。

至于它说它无法找到的文件,我设置cmake以构建二进制文件的文件夹中存在一个文件。在我的例子中,两个目录中有两个文件:

--E:\ITK\InsightToolkit-4.8.2-build\ITKConfig.cmake
--E:\ITK\InsightToolkit-4.8.2-build\CMakeFiles\ITKConfig.cmake

3 个答案:

答案 0 :(得分:3)

在CMake 3.0中删除了FindITK.cmake文件。

  

<强> FindITK
  该模块已不存在。

     

此模块存在于3.1之前的CMake版本中,但仅限于此   提供find_package(ITK NO_MODULE)周围的薄包装   使用长期过时约定的项目的兼容性。现在   find_package(ITK)会直接搜索ITKConfig.cmake

来源:https://cmake.org/cmake/help/v3.4/module/FindITK.html

因此,CMake会查找ITKConfig.cmake,该ITKConfig.cmake必须安装到默认位置,或者您必须将NSDictionary的路径添加到CMAKE_PREFIX_PATH

答案 1 :(得分:2)

我找到了成功构建测试项目的方法(以及我目前正在处理的另一个项目)。在构建项目时,我将ITK构建文件夹的位置指定为参数:

cmake -DITK_DIR=E:/ITK/Insight-Toolkit-4.8.2 CMakeLists.txt

我仍然不确定为什么我以前从未这样做过,以及为什么在我在cmake GUI中配置ITK后ITK_DIR变量不会保留,但这确实允许我构建项目。

答案 2 :(得分:0)

这些口味或其他口味都没有为我工作,好像从未定义过ITK_DIR:

cmake -DITK_DIR=C:\Users\user\InsightToolkit-5.0.0_bld C:\Users\user\HelloWorldITK cmake
-DITK_DIR=C:\\Users\\user\\InsightToolkit-5.0.0_bld C:\Users\user\HelloWorldITK cmake
-DITK_DIR=C:/Users/user/InsightToolkit-5.0.0_bld C:\Users\user\HelloWorldITK

但是,将其添加到CMakeLists.txt可以解决问题:

SET(ITK_DIR "C:\\Users\\user\\InsightToolkit-5.0.0_bld")