Я новичок в ITK, и я сделал следующий шаг, чтобы установить ITK и использовать его для программирования в VS2010
Ниже приведен мой простой код …
#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 файлом. Любая помощь приветствуется
Самый простой способ настроить ваш проект — это снова использовать 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)
Допустим, вы создали эти 2 файла в директории под названием 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
будет добавлен в каталог include, поэтому в вашем main.cpp вам просто нужно сделать:
#include <Core/Common/include/itkImage.h>
#include "itkImage.h"
Во всяком случае, конечный результат после запуска CMake должен быть файл решения <path to ItkProject>\build\ItkTest.sln
который настроен на использование ITK.
Я проверил \ 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")