SimpleITK/FAQ

From KitwarePublic
< SimpleITK
Revision as of 04:39, 4 February 2012 by Danmueller (talk | contribs) (Added C# header)
Jump to navigationJump to search

This page hosts frequently asked questions about SimpleITK, and their answers.

Download

Where is the Input Data? or Why is my Testing/Data directory empty?

The testing data should reside in the source directory under the "Testing/Data" directories. If this directory is empty you likely downloaded the source code with "git clone". The data is stored as a git submodule . There are two common ways to download this submodule repository.

The first is when you are cloning the SimpleITK repository the first time your can recursively clone submodules with the following command:

git clone --recursive  http://itk.org/SimpleITK.git

If you forgot to include this argument when you clone, or if you git version is so old that is doesn't support the "--recursive" option flag. The the following two commands should download that data:

$ git submodule init 
Submodule 'Testing/Data' (git://itk.org/SimpleITKData.git) registered for path 'Testing/Data'
$ git submodule update
Initialized empty Git repository in /Volumes/Home/Users/blowekamp/temp/SimpleITK/Testing/Data/.git/
remote: Counting objects: 290, done.
remote: Compressing objects: 100% (182/182), done.
remote: Total 290 (delta 106), reused 290 (delta 106)
Receiving objects: 100% (290/290), 19.89 MiB | 2.76 MiB/s, done.
Resolving deltas: 100% (106/106), done.
Submodule path 'Testing/Data': checked out 'f4f1faf6e60696bed8282758e49a95779ad15e0d'

Why are so many tests failing?

The most common cause of a large number of failures is that the data submodule has not been downloaded or updated.

If the subdirectory "Testing/Data" is empty, then the data submodule has not initialized and downloaded. Please follow the instructions to accomplish this.

To check if the data submodule is out of date the following command can be run:

$ git status
# On branch master
# Changed but not updated:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#	modified:   Testing/Data (new commits)
#

The git suggestion is unfortunately not too helpful here. This indicates that the data submodule needs to be updated with the following command:

$ git submodule update

If you have your data submodule up to date and the tests are still failing it is likely there is a more complicated configuration problem.


Compilation

Is my compiler supported?

SimpleITK uses advanced C++ meta-programming to instantiate ITK's Images and Filters. Addtionally, we some headers which are included in the C99 and C++ TR1 extension. This places additional requirements on the compiler beyond what is require for ITK. In principle we require C++x03 with C99's "stdint.h" and TR1's "functional". If your compiler has those features it is likely able to be supported.

The additional requirement for a supported compiler is that it's on the nightly dashboard. With this regaurd the list of supported compilers is on the SimpleITK SimpleITK dashboard. User contributions are welcomed to expand the supported compilers by contributing to the nightly dashboard.

Committed to Support

    • GCC 4.0
    • GCC 4.2
    • GCC 4.5
    • Visual Studio 9
    • Visual Studio 10 ( including Express )

Do I need to download an option package for TR1 support?

Visual Studio 2008 requires an additional download for TR1 support.

Do I need to download an optional package for C99?

Visual Studio 2008 requires an additional download for C99 support.

How do I build withVisual Studio 2008?

Visual Studio 2008 is the oldest supported Microsoft development environment that SimpleITK supports. To build, you will need to download and install the TR1 implementation contained in the Visual C++ 2008 Feature Pack Release.

Visual Studio also requires an implementation of stdint.h, which can be downloaded here and should be installed in:

C:\Program Files\Microsoft Visual Studio 9.0\VC\include

Installation

How to Use

Wrapping

Python

Tcl

Java

C#