3

我是 ITK 新手,我做了以下步骤来安装 ITK 并使用它在 VS2010 中编程

  1. 下载 ITK 4.3.1 并使用 CMAKE 构建它
  2. 构建成功,我有一个包含库的 lib->Debug 文件夹。
  3. 将 bin 文件夹路径添加到环境变量路径。

以下是我的简单代码...

#include <iostream>
#include <Core/Common/include/itkImage.h>

using namespace itk;
using namespace std;

int main()
{
    return 0;
}

上面的代码返回

Cannot open include file: 'itkConfigure.h'

我尝试搜索该标题但没有运气。但是在C:\InsightToolkit-4.3.1\Modules\Core\Common\src我找到了 itkConfigure.h.in文件。我真的对如何处理这个 .in 文件一无所知。任何帮助都是最受欢迎的..

4

2 回答 2

3

设置项目的最简单方法是再次使用 CMake。尝试仅使用 CMakeLists.txt 和 main.cpp 创建一个项目。CMakeLists.txt 应具有以下内容:

cmake_minimum_required(VERSION 2.8 FATAL_ERROR)
project(ItkTest)

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

add_executable(MyTest main.cpp)
target_link_libraries(MyTest ITKCommon)

因此,假设您在名为 ItkProject 的目录中创建这两个文件,然后从Visual Studio 命令提示符执行以下操作:

cd <path to ItkProject>
mkdir build
cd build
cmake .. -DITK_DIR="<path to build dir of ITK>"

<path to build dir of ITK>是您运行 CMake 以配置 ITK 项目的地方。它将包含 ITK.sln 文件,但重要的是它还应该包含一个名为 ITKConfig.cmake 的文件。在 cmake 命令中搜索的是这个文件find_package(ITK REQUIRED)- 如果 CMake 找不到它,配置将失败。

一旦找到,它会设置一堆 CMake 变量,然后您可以在自己的 CMakeLists.txt 中使用这些变量,包括ITK_USE_FILE.

然后,当您调用include(${ITK_USE_FILE})时,它会继续设置诸如包含路径、库搜索路径和编译器标志之类的内容。该路径<path to ItkProject>/Core/Common/include将被添加到包含目录中,因此在您的 main.cpp 中,您只需要执行以下操作:

#include <Core/Common/include/itkImage.h>
#include "itkImage.h"

无论如何,运行 CMake 后的最终结果应该<path to ItkProject>\build\ItkTest.sln是设置好可以使用 ITK 的解决方案文件。

于 2013-04-06T12:04:00.283 回答
0

我检查了 \ItkConfig.cmake 并且在那里定义的路径应该与物理路径匹配,如果 ITK 构建未被触及(目录未重命名),就是这种情况。

# The ITK source tree.
# For backward compatibility issues we still need to define this variable, although
# it is highly probable that it will cause more harm than being useful. 
# Use ITK_INCLUDE_DIRS instead, since ITK_SOURCE_DIR may point to non-existent directory
IF(NOT ITK_LEGACY_REMOVE)
  SET(ITK_SOURCE_DIR "C:/ITK320")
ENDIF(NOT ITK_LEGACY_REMOVE)

# The ITK include file directories.
SET(ITK_INCLUDE_DIRS "C:/ITK320-build;C:/ITK320/Code/Algorithms;C:/ITK320/Code/BasicFilters;C:/ITK320/Code/Common;C:/ITK320/Code/Numerics;C:/ITK320/Code/IO;C:/ITK320/Code/Numerics/FEM;C:/ITK320/Code/Numerics/NeuralNetworks;C:/ITK320/Code/SpatialObject;C:/ITK320/Utilities/MetaIO;C:/ITK320/Utilities/NrrdIO;C:/ITK320-build/Utilities/NrrdIO;C:/ITK320/Utilities/DICOMParser;C:/ITK320-build/Utilities/DICOMParser;C:/ITK320-build/Utilities/expat;C:/ITK320/Utilities/expat;C:/ITK320/Utilities/nifti/niftilib;C:/ITK320/Utilities/nifti/znzlib;C:/ITK320/Utilities/itkExtHdrs;C:/ITK320-build/Utilities;C:/ITK320/Utilities;C:/ITK320/Code/Numerics/Statistics;C:/ITK320/Utilities/vxl/v3p/netlib;C:/ITK320/Utilities/vxl/vcl;C:/ITK320/Utilities/vxl/core;C:/ITK320-build/Utilities/vxl/v3p/netlib;C:/ITK320-build/Utilities/vxl/vcl;C:/ITK320-build/Utilities/vxl/core;C:/ITK320-build/Utilities/gdcm;C:/ITK320/Utilities/gdcm/src")

# The ITK library directories.
SET(ITK_LIBRARY_DIRS "C:/ITK320-build/bin")
于 2014-05-20T08:26:08.567 回答