ITK安装和示例程序
ITK installation and sample program
我是ITK的新手,我做了以下步骤来安装ITK并使用它在VS2010中编程
- 下载ITK 4.3.1并使用CMAKE编译
- 构建是成功的,我有一个lib->Debug文件夹包含库。
- 将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.1ModulesCoreCommonsrc
我发现itkConfigure.h。在文件。我真的不知道如何处理这个文件。欢迎任何帮助
设置项目的最简单方法是再次使用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。但关键的是,它还应该包含一个名为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>buildItkTest.sln
,该文件已设置为准备使用ITK。
我检查了ItkConfig。cmake和其中定义的路径应该匹配物理路径,如果ITK build没有被修改过(目录没有重命名),就会出现这种情况。
# 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")
- 尝试通过OCI例程从Oracle获取blob数据,但出现错误:ORA-01008:并非所有变量都绑定
- c++类声明时,相同的例程,不同的成员变量类型
- C++为线程工作动态地分割例程
- 试图创建一个多线程程序来查找0-100000000之间的总素数
- 子例程,不使用 pow,并带有参数和返回
- 直接在RcppArmadillo中调用LAPACK例程
- sigwait() 在多线程程序中不起作用
- 多线程程序中出现意外的内存泄漏
- 如何将C++子例程链接到 x86 程序集程序?
- PX 转换例程编译问题
- C++多线程程序:变量定义为类成员的隔离错误
- 在以读取为主的多线程程序中,可以使用原子来减少锁定吗
- 成功完成TLS握手后,服务器关闭时出现错误的SSL例程:SSL3_GET_RECORD:错误的版本号
- 多线程程序中的分段故障和gdb回溯上的不完整信息
- 多线程程序卡在优化模式下,但在 -O0 中正常运行
- 只允许授权代码调用库中的例程
- 位置实用程序例程与使用类型相同的命名空间
- Qt事件后,长例程冻结了我的应用程序一段时间
- 为多线程程序增强非阻塞读写例程
- 从c++程序中调用Stan例程