[ITK-dev] MSVC linking errors down but still problems

Lowekamp, Bradley (NIH/NLM/LHC) [C] blowekamp at mail.nih.gov
Mon Nov 28 10:59:41 EST 2016


Hello,

I have recently added needed standard export specification to the explicitly instantiated ParametricPath class [1] to address many compilation errors [2] with standard shared library configuration with MSCV. The linker errors had the following form:

ITKPath-4.11.lib(ITKPath-4.11.dll) : error LNK2005: "public: virtual void __cdecl itk::ParametricPath<2>::SetDefaultInputStepSize(double)" (?SetDefaultInputStepSize@?$ParametricPath@$01 at itk@@UEAAXN at Z) already defined in itkPathIteratorTest.obj [C:\d\itk-vs11-64rs\ITK-build\Modules\Filtering\Path\test\ITKPathTestDriver.vcxproj]


The patch successfully address the problem with “normal” shared libraries. Now a new linker error [3] has popped up with the CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS option enabled with just one MSVC compiler vs12:

itkPolylineMask2DImageFilterTest.cxx.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) const itk::Path,2>::`vftable'" (__imp_??_7?$Path at NV?$ContinuousIndex at N$01 at itk@@$01 at itk@@6B@) referenced in function "protected: virtual __cdecl itk::PolyLineParametricPath<2>::~PolyLineParametricPath<2>(void)" (??1?$PolyLineParametricPath@$01 at itk@@MEAA at XZ)

It is important to note that the missing Path symbol is the parent class of the explicitly instantiated and exported ParametricPath class. 

So who wants to take up this issue?

Thanks,
Brad

[1] https://github.com/InsightSoftwareConsortium/ITK/compare/7ed1d9b058715f00a08ecac8cbc1498728296d57...0aa2e6fe7411c46ec21c27cbcde8eb42f4cdc4b4
[2] https://open.cdash.org/viewBuildError.php?buildid=4657350
[3] https://open.cdash.org/viewBuildError.php?buildid=4661233


More information about the Insight-developers mailing list