SimpleITK/FAQ

From KitwarePublic
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 your 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 10 ( including Express )
    • Visual Studio 9 with Service Pack 1

Prior Release Problems

  • Please note that with SimpleITK release 0.4.0, Visual Studio 2008 was not compiling. This has since been remedied in the development branch on April 18th, 2012.

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

Visual Studio 2008 requires an additional download for TR1 support. This is best provided with the Service Pack 1. There is a separate TR1 feature pack which can be downloaded, but this is no longer recommended as SP1 include TR1 and numerous bug and performance improvements.

Do I need to download an optional package for C99?

Visual Studio 2008 requires an additional download for C99 stdint support.

How do I build withVisual Studio 2008?

Visual Studio 2008 is the oldest supported Microsoft development environment that SimpleITK supports. To build, certain features of C++TR1 are required. This is best provided by the "Microsoft Visual Studio 2008 Service Pack 1". Alternatively just the Visual C++ 2008 Feature Pack Release can be installed. Please not that all our dashboard machines now use SP1.

Visual Studio also requires an implementation of stdint.h, which can be downloaded here. For 64-bit Microsoft Windows it should be installed here:

C:\Program Files\Microsoft Visual Studio 9.0 (x86)\VC\include

While on 32-bit operating systems it should be install here:

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

Please note that some times a web browser will automatically add a ".txt" extension. After the file is saved it would be wise to check the properties to verify that it has the correct ".h" file extension along with the file permissions.

What Configurations on Windows are Supported For Building?

There are quite a large number of configuration options available for the windows platform. The following table is a guide line of what is regularly tested and confirmed to work or fail.


Architecture Library Type Visual Studio 2008 SP1 VS9 ) Visual Studio 2010 ( VS10 )
Release Debug Release Debug
32-bit Window OS Only Intel 32-bit Static FAIL Nightly FAIL
Shared Nightly Nightly Nightly
64-bit Window OS Intel 32-bit Static Nightly Nightly
Shared
Intel 64-bit Static Nightly FAIL Nightly Nightly
Shared
Legend
Nightly This combination of options is nightly tested, and known to work.
This combinations has been manually tested, and is expected to work.
It is not known if this combinations of options will work.
FAIL These options are known not to work.

This table has been updated for the stable development branch, master, as of April 18th 2012.

Why are all of the configurations not supported on Window?

One of the following errors frequently occur when the set of configuration options will fail:

LINK : fatal error LNK1102: out of memory
LINK : fatal error LNK1248: image size (80000010) exceeds maximum allowable size (80000000)


These error are because of limitations of compiler's linker or Operating system. For 32-bit architectures the linker is still only 32-bits in certain configuration it runs out of memory. The Windows operating systems have a hard limit on the size of 2GB for libraries. For certain Debug mode configurations this limit is encountered.

Ingeneral building debug mode should not be necessary, unless you are tying to debug SimpleITK or ITK. This configuration option produces libraries that are very large because it must maintain symbols for all instantiated ITK classes and member functions for each template parameters that class is instantiated.

Installation

Why do I get an error about a missing Dynamic Library when running SimpleITK with Python on windows?

This error occurs after you have downloaded the windows binaries when you are running python and try to import SimpleITK. There is an error about a missing DLL on windows when you don't have Visual Studio 10 and no other application has installed certain libraries before. You will need to download the Visual Studio 10 redistribution libraries. The libraries are available for download here.

How to Use

Wrapping

Python

Tcl

Java

C#