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)

したがって、これら 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はインクルード ディレクトリに追加されるため、main.cpp で次の操作を行うだけです。

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

とにかく、CMake を実行した後の最終結果は、<path to ItkProject>\build\ItkTest.slnITK を使用する準備が整ったソリューション ファイルである必要があります。

于 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 に答える