[Insight-developers] Expected behavior for shared libraries on windows

Brad King brad.king at kitware.com
Wed Apr 4 11:04:44 EDT 2012


On 4/4/2012 10:50 AM, Bradley Lowekamp wrote:
> As I am compiling for windows I am only getting the following dll when shared libaries are turn on:
>
> ITKCommon-4.1.dll
> FactoryTestLib.dll
> FileFreeTestLib.dll
>
> That is it... nothing else is shared.

This has never been supported other than for ITKCommon.

The explanation is just a few lines above the line you linked:

  https://github.com/Kitware/ITK/blob/master/CMake/ITKSetStandardCompilerFlags.cmake#L163

  # Some libraries (e.g. vxl libs) have no dllexport markup, so we can
  # build full shared libraries only with the GNU toolchain. For non
  # gnu compilers on windows, only Common is shared. This allows for
  # plugin type applications to use a dll for ITKCommon which will contain
  # the static for Modified time.

dllexport markup would have to be propagated through the vnl explicit
instantiations.  Compiler-specific extensions are needed to dllimport
explicit instantiations.  See here for details:

  http://www.itk.org/Wiki/Proposals:Explicit_Instantiation

The vxl folks are not interested in mangling their code with such
markup.

-Brad K


More information about the Insight-developers mailing list