How to compile part of ITK integrated into another library?

Which one you think it is? KWSys???

KWSys should respect that, as it does that while being part of ITK. Maybe Blueberry or mbilog?

I removed the KWSys from ITK and imported the original from Kitwareā€™s repo : https://gitlab.kitware.com/utils/kwsys

It has nothing to do anymore!

Can you check why CTKmitk is not compiling with this error:

Creating library G:/programming/cpp/CTK/build/CTK-build/bin/Debug/CTKmitk.lib and object G:/programming/cpp/CTK/build/CTK-build/bin/Debug/CTKmitk.exp

[build] mitkException.obj : error LNK2001: unresolved external symbol "public: virtual bool __cdecl itk::ExceptionObject::operator==(class itk::ExceptionObject const &)const " (??8ExceptionObject@itk@@UEBA_NAEBV01@@Z) [G:\programming\cpp\CTK\build\CTK-build\Libs\mitk\CTKmitk.vcxproj] [G:\programming\cpp\CTK\build\CTK.vcxproj]

[build] mitkLog.obj : error LNK2001: unresolved external symbol "public: virtual bool __cdecl itk::ExceptionObject::operator==(class itk::ExceptionObject const &)const " (??8ExceptionObject@itk@@UEBA_NAEBV01@@Z) [G:\programming\cpp\CTK\build\CTK-build\Libs\mitk\CTKmitk.vcxproj] [G:\programming\cpp\CTK\build\CTK.vcxproj]

[build] mitkLog.obj : error LNK2019: unresolved external symbol "public: __cdecl itk::SimpleFastMutexLock::SimpleFastMutexLock(void)" (??0SimpleFastMutexLock@itk@@QEAA@XZ) referenced in function "void __cdecl `dynamic initializer for 'logMutex''(void)" (??__ElogMutex@@YAXXZ) [G:\programming\cpp\CTK\build\CTK-build\Libs\mitk\CTKmitk.vcxproj] [G:\programming\cpp\CTK\build\CTK.vcxproj]

[build] mitkLog.obj : error LNK2019: unresolved external symbol "public: __cdecl itk::SimpleFastMutexLock::~SimpleFastMutexLock(void)" (??1SimpleFastMutexLock@itk@@QEAA@XZ) referenced in function "void __cdecl `dynamic atexit destructor for 'logMutex''(void)" (??__FlogMutex@@YAXXZ) [G:\programming\cpp\CTK\build\CTK-build\Libs\mitk\CTKmitk.vcxproj] [G:\programming\cpp\CTK\build\CTK.vcxproj]

[build] mitkLog.obj : error LNK2019: unresolved external symbol "public: void __cdecl itk::SimpleFastMutexLock::Lock(void)const " (?Lock@SimpleFastMutexLock@itk@@QEBAXXZ) referenced in function "public: virtual void __cdecl mitk::LoggingBackend::ProcessMessage(class mbilog::LogMessage const &)" (?ProcessMessage@LoggingBackend@mitk@@UEAAXAEBVLogMessage@mbilog@@@Z) [G:\programming\cpp\CTK\build\CTK-build\Libs\mitk\CTKmitk.vcxproj] [G:\programming\cpp\CTK\build\CTK.vcxproj]

[build] mitkLog.obj : error LNK2019: unresolved external symbol "public: void __cdecl itk::SimpleFastMutexLock::Unlock(void)const " (?Unlock@SimpleFastMutexLock@itk@@QEBAXXZ) referenced in function "public: virtual void __cdecl mitk::LoggingBackend::ProcessMessage(class mbilog::LogMessage const &)" (?ProcessMessage@LoggingBackend@mitk@@UEAAXAEBVLogMessage@mbilog@@@Z) [G:\programming\cpp\CTK\build\CTK-build\Libs\mitk\CTKmitk.vcxproj] [G:\programming\cpp\CTK\build\CTK.vcxproj]

[build] G:\programming\cpp\CTK\build\CTK-build\bin\Debug\CTKmitk.dll : fatal error LNK1120: 5 unresolved externals [G:\programming\cpp\CTK\build\CTK-build\Libs\mitk\CTKmitk.vcxproj] [G:\programming\cpp\CTK\build\CTK.vcxproj]
    Creating library G:/programming/cpp/CTK/build/CTK-build/bin/Debug/CTKmitk.lib and object G:/programming/cpp/CTK/build/CTK-build/bin/Debug/CTKmitk.exp

    [build] mitkException.obj : error LNK2001: unresolved external symbol "public: virtual bool __cdecl itk::ExceptionObject::operator==(class itk::ExceptionObject const &)const " (??8ExceptionObject@itk@@UEBA_NAEBV01@@Z) [G:\programming\cpp\CTK\build\CTK-build\Libs\mitk\CTKmitk.vcxproj] [G:\programming\cpp\CTK\build\CTK.vcxproj]

    [build] mitkLog.obj : error LNK2001: unresolved external symbol "public: virtual bool __cdecl itk::ExceptionObject::operator==(class itk::ExceptionObject const &)const " (??8ExceptionObject@itk@@UEBA_NAEBV01@@Z) [G:\programming\cpp\CTK\build\CTK-build\Libs\mitk\CTKmitk.vcxproj] [G:\programming\cpp\CTK\build\CTK.vcxproj]

    [build] mitkLog.obj : error LNK2019: unresolved external symbol "public: __cdecl itk::SimpleFastMutexLock::SimpleFastMutexLock(void)" (??0SimpleFastMutexLock@itk@@QEAA@XZ) referenced in function "void __cdecl `dynamic initializer for 'logMutex''(void)" (??__ElogMutex@@YAXXZ) [G:\programming\cpp\CTK\build\CTK-build\Libs\mitk\CTKmitk.vcxproj] [G:\programming\cpp\CTK\build\CTK.vcxproj]

    [build] mitkLog.obj : error LNK2019: unresolved external symbol "public: __cdecl itk::SimpleFastMutexLock::~SimpleFastMutexLock(void)" (??1SimpleFastMutexLock@itk@@QEAA@XZ) referenced in function "void __cdecl `dynamic atexit destructor for 'logMutex''(void)" (??__FlogMutex@@YAXXZ) [G:\programming\cpp\CTK\build\CTK-build\Libs\mitk\CTKmitk.vcxproj] [G:\programming\cpp\CTK\build\CTK.vcxproj]

    [build] mitkLog.obj : error LNK2019: unresolved external symbol "public: void __cdecl itk::SimpleFastMutexLock::Lock(void)const " (?Lock@SimpleFastMutexLock@itk@@QEBAXXZ) referenced in function "public: virtual void __cdecl mitk::LoggingBackend::ProcessMessage(class mbilog::LogMessage const &)" (?ProcessMessage@LoggingBackend@mitk@@UEAAXAEBVLogMessage@mbilog@@@Z) [G:\programming\cpp\CTK\build\CTK-build\Libs\mitk\CTKmitk.vcxproj] [G:\programming\cpp\CTK\build\CTK.vcxproj]

    [build] mitkLog.obj : error LNK2019: unresolved external symbol "public: void __cdecl itk::SimpleFastMutexLock::Unlock(void)const " (?Unlock@SimpleFastMutexLock@itk@@QEBAXXZ) referenced in function "public: virtual void __cdecl mitk::LoggingBackend::ProcessMessage(class mbilog::LogMessage const &)" (?ProcessMessage@LoggingBackend@mitk@@UEAAXAEBVLogMessage@mbilog@@@Z) [G:\programming\cpp\CTK\build\CTK-build\Libs\mitk\CTKmitk.vcxproj] [G:\programming\cpp\CTK\build\CTK.vcxproj]

    [build] G:\programming\cpp\CTK\build\CTK-build\bin\Debug\CTKmitk.dll : fatal error LNK1120: 5 unresolved externals [G:\programming\cpp\CTK\build\CTK-build\Libs\mitk\CTKmitk.vcxproj] [G:\programming\cpp\CTK\build\CTK.vcxproj]

Why is it that itk & mbilog are linking but not mitk (libraries look at structure in Libs)

I found out from CTK developers easier way to integrate external dependencies without going through rough modifications.

1 Like

The solution continues on github https://github.com/commontk/CTK/issues/949

1 Like

I think I also mentioned using external project approach to you instead of modifying the libraries. JC has more experience in build systems than me, and he is also one of the maintainers of CTK. And your fork of CTK has more to do with CTK than ITK :smiley:

@dzenanz Iā€™m sorry if I didnā€™t get it when you proposed it and thatā€™s because I am a noob in CMake and large project.

But I am learning a lot here due to exchanging ideas and trying to understand few bits and pieces.

I appreciate your support.