Deepak Murali
Deepak Murali

Reputation: 1

Error while link ITK and VTK libraries to QT

I want to develop image processing and visualization software. So i tried to integrate vtk and itk to qt and used msvc2015 compiler. Unfortunately there is an error occurred while link libraries of itk to Qt.The complete error given below.

itksys-5.2.lib(SystemTools.obj):-1: error: LNK2019: unresolved external symbol __imp_RegCloseKey referenced in function "public: static bool __cdecl itksys::SystemTools::DeleteRegistryValue(class std::basic_string<char,struct std::char_traits,class std::allocator > const &,enum itksys::SystemTools::KeyWOW64)" (?DeleteRegistryValue@SystemTools@itksys@@SA_NAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@W4KeyWOW64@12@@Z)

But the lib itksys-5.2.lib is existing in the .pro file. See the qt .pro file details given below.

QT       += core gui
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

CONFIG += c++11
DEFINES += QT_DEPRECATED_WARNINGS
SOURCES += \
ImageView.cpp \
config.cpp \
main.cpp \
mainwindow.cpp \
test.cpp \
threedview.cpp \
vtkintersctorstylecustome.cpp \
widget.cpp
HEADERS += \
ImageView.h \
config.h \
mainwindow.h \
test.h \
threedview.h \
vtkincludes.h \
vtkintersctorstylecustome.h \
widget.h
FORMS += \
mainwindow.ui \
widget.ui

win32 
{
   INCLUDEPATH += $$quote("C:/Program Files/VTK/include/vtk-8.1")
   CONFIG(debug, debug|release ) 
   {
   } 
   else 
   {

    QMAKE_LIBDIR += "C:/Program Files/VTK/lib"
    LIBS += 
    -lvtkalglib-8.1 \
    -lvtkChartsCore-8.1 \
    -lvtkCommonColor-8.1 \
    -lvtkCommonComputationalGeometry-8.1 \
    -lvtkCommonCore-8.1 \
    -lvtkCommonDataModel-8.1 \
    -lvtkCommonExecutionModel-8.1 \
    -lvtkCommonMath-8.1 \
    -lvtkCommonMisc-8.1 \
    -lvtkCommonSystem-8.1 \
    -lvtkCommonTransforms-8.1 \
    -lvtkDICOM-8.1 \
    -lvtkDICOMParser-8.1 \
    -lvtkDomainsChemistry-8.1 \
    -lvtkDomainsChemistryOpenGL2-8.1 \
    -lvtkexoIIc-8.1 \
    -lvtkexpat-8.1 \
    -lvtkFiltersAMR-8.1 \
    -lvtkFiltersCore-8.1 \
    -lvtkFiltersExtraction-8.1 \
    -lvtkFiltersFlowPaths-8.1 \
    -lvtkFiltersGeneral-8.1 \
    -lvtkFiltersGeneric-8.1 \
    -lvtkFiltersGeometry-8.1 \
    -lvtkFiltersHybrid-8.1 \
    -lvtkFiltersHyperTree-8.1 \
    -lvtkFiltersImaging-8.1 \
    -lvtkFiltersModeling-8.1 \
    -lvtkFiltersParallel-8.1 \
    -lvtkFiltersParallelImaging-8.1 \
    -lvtkFiltersPoints-8.1 \
    -lvtkFiltersProgrammable-8.1 \
    -lvtkFiltersSelection-8.1 \
    -lvtkFiltersSMP-8.1 \
    -lvtkFiltersSources-8.1 \
    -lvtkFiltersStatistics-8.1 \
    -lvtkFiltersTexture-8.1 \
    -lvtkFiltersTopology-8.1 \
    -lvtkFiltersVerdict-8.1 \
    -lvtkfreetype-8.1 \
    -lvtkGeovisCore-8.1 \
    -lvtkgl2ps-8.1 \
    -lvtkglew-8.1 \
    -lvtkGUISupportQt-8.1 \
    -lvtkGUISupportQtOpenGL-8.1 \
    -lvtkGUISupportQtSQL-8.1 \
    -lvtkhdf5_hl-8.1 \
    -lvtkhdf5-8.1 \
    -lvtkImagingColor-8.1 \
    -lvtkImagingCore-8.1 \
    -lvtkImagingFourier-8.1 \
    -lvtkImagingGeneral-8.1 \
    -lvtkImagingHybrid-8.1 \
    -lvtkImagingMath-8.1 \
    -lvtkImagingMorphological-8.1 \
    -lvtkImagingOpenGL2-8.1 \
    -lvtkImagingSources-8.1 \
    -lvtkImagingStatistics-8.1 \
    -lvtkImagingStencil-8.1 \
    -lvtkInfovisCore-8.1 \
    -lvtkInfovisLayout-8.1 \
    -lvtkInteractionImage-8.1 \
    -lvtkInteractionStyle-8.1 \
    -lvtkInteractionWidgets-8.1 \
    -lvtkIOAMR-8.1 \
    -lvtkIOCore-8.1 \
    -lvtkIOEnSight-8.1 \
    -lvtkIOExodus-8.1 \
    -lvtkIOExport-8.1 \
    -lvtkIOExportOpenGL2-8.1 \
    -lvtkIOGeometry-8.1 \
    -lvtkIOImage-8.1 \
    -lvtkIOImport-8.1 \
    -lvtkIOInfovis-8.1 \
    -lvtkIOLegacy-8.1 \
    -lvtkIOLSDyna-8.1 \
    -lvtkIOMINC-8.1 \
    -lvtkIOMovie-8.1 \
    -lvtkIONetCDF-8.1 \
    -lvtkIOParallel-8.1 \
    -lvtkIOParallelXML-8.1 \
    -lvtkIOPLY-8.1  \
    -lvtkIOSQL-8.1  \
    -lvtkIOTecplotTable-8.1 \
    -lvtkIOVideo-8.1 \
    -lvtkIOXML-8.1 \
    -lvtkIOXMLParser-8.1 \
    -lvtkjpeg-8.1 \
    -lvtkjsoncpp-8.1 \
    -lvtklibharu-8.1 \
    -lvtklibxml2-8.1 \
    -lvtklz4-8.1 \
    -lvtkmetaio-8.1 \
    -lvtkNetCDF-8.1 \
    -lvtkoggtheora-8.1 \
    -lvtkParallelCore-8.1 \
    -lvtkpng-8.1 \
    -lvtkproj4-8.1 \
    -lvtkRenderingAnnotation-8.1 \
    -lvtkRenderingContext2D-8.1 \
    -lvtkRenderingContextOpenGL2-8.1 \
    -lvtkRenderingCore-8.1 \
    -lvtkRenderingFreeType-8.1 \
    -lvtkRenderingGL2PSOpenGL2-8.1 \
    -lvtkRenderingImage-8.1 \
    -lvtkRenderingLabel-8.1 \
    -lvtkRenderingLOD-8.1 \
    -lvtkRenderingOpenGL2-8.1 \
    -lvtkRenderingQt-8.1 \
    -lvtkRenderingVolume-8.1 \
    -lvtkRenderingVolumeOpenGL2-8.1 \
    -lvtksqlite-8.1 \
    -lvtksys-8.1 \
    -lvtktiff-8.1 \
    -lvtkverdict-8.1 \
    -lvtkViewsContext2D-8.1 \
    -lvtkViewsCore-8.1 \
    -lvtkViewsInfovis-8.1 \
    -lvtkViewsQt-8.1 \
    -lvtkzlib-8.1   
   }
 }
 qnx: target.path = /tmp/$${TARGET}/bin
 else:
   unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target
RESOURCES += \ Icon.qrc

win32 
{
   INCLUDEPATH += $$quote("C:/Program Files/ITK/include/ITK-5.2")
   CONFIG(debug, debug|release ) 
   {
   } 
   else 
   {
     QMAKE_LIBDIR += "C:/Program Files/ITK/lib"
     LIBS += 
     -litksys-5.2\
     -lITKBiasCorrection-5.2\
     -lITKColormap-5.2\
     -lITKCommon-5.2\
     -lITKConvolution-5.2\
     -lITKDeformableMesh-5.2\
     -lITKDenoising-5.2\
     -lITKDICOMParser-5.2\
     -lITKDiffusionTensorImage-5.2\
     -litkdouble-conversion-5.2\
     -lITKEXPAT-5.2\
     -lITKFastMarching-5.2\
     -lITKFFT-5.2\
     -litkgdcmcharls-5.2\
     -litkgdcmCommon-5.2\
     -litkgdcmDICT-5.2\
     -litkgdcmDSED-5.2\
     -litkgdcmIOD-5.2\
     -litkgdcmjpeg8-5.2\
     -litkgdcmjpeg12-5.2\
     -litkgdcmjpeg16-5.2\
     -litkgdcmMEXD-5.2\
     -litkgdcmMSFF-5.2\
     -litkgdcmopenjp2-5.2\
     -litkgdcmsocketxx-5.2\
     -lITKgiftiio-5.2\
     -litkhdf5_cpp-shared-5.2\
     -litkhdf5-shared-5.2\
     -lITKImageFeature-5.2\
     -lITKImageIntensity-5.2\
     -lITKIOBioRad-5.2\
     -lITKIOBMP-5.2\
     -lITKIOBruker-5.2\
     -lITKIOBruker-5.2\
     -lITKIOGDCM-5.2\
     -lITKIOGE-5.2\
     -lITKIOGIPL-5.2\
     -lITKIOGIPL-5.2\
     -lITKIOImageBase-5.2\
     -lITKIOIPL-5.2\
     -lITKIOIPL-5.2\
     -lITKIOIPL-5.2\
     -lITKIOIPL-5.2\
     -lITKIOIPL-5.2\
     -lITKIOMeshBYU-5.2\
     -lITKIOMeshFreeSurfer-5.2\
     -lITKIOMeshGifti-5.2\
     -lITKIOMeshOBJ-5.2\
     -lITKIOMeshOFF-5.2\
     -lITKIOMeshVTK-5.2\
     -lITKIOMeta-5.2\
     -lITKIOMINC-5.2\
     -lITKIOMRC-5.2\
     -lITKIONIFTI-5.2\
     -lITKIONRRD-5.2\
     -lITKIOPNG-5.2\
     -lITKIOSiemens-5.2\
     -lITKIOSpatialObjects-5.2\
     -lITKIOStimulate-5.2\
     -lITKIOTIFF-5.2\
     -lITKIOTransformBase-5.2\
     -lITKIOTransformHDF5-5.2\
     -lITKIOTransformInsightLegacy-5.2\
     -lITKIOTransformMatlab-5.2\
     -lITKIOVTK-5.2\
     -lITKIOXML-5.2\
     -litkjpeg-5.2\
     -lITKKLMRegionGrowing-5.2\
     -lITKLabelMap-5.2\
     -litklbfgs-5.2\
     -lITKMarkovRandomFieldsClassifiers-5.2\
     -lITKMathematicalMorphology-5.2\
     -lITKMesh-5.2\
     -lITKMetaIO-5.2\
     -litkminc2-5.2\
     -litkNetlibSlatec-5.2\
     -lITKniftiio-5.2\
     -lITKNrrdIO-5.2\
     -litkopenjpeg-5.2\
     -lITKOptimizers-5.2\
     -lITKOptimizersv4-5.2\
     -lITKPath-5.2\
     -lITKPDEDeformableRegistration-5.2\
     -litkpng-5.2\
     -lITKPolynomials-5.2\
     -lITKQuadEdgeMesh-5.2\
     -lITKQuadEdgeMeshFiltering-5.2\
     -lITKRegionGrowing-5.2\
     -lITKRegistrationMethodsv4-5.2\
     -lITKSmoothing-5.2\
     -lITKSpatialObjects-5.2\
     -lITKStatistics-5.2\
     -lITKTestKernel-5.2\
     -litktestlib-5.2\
     -litktiff-5.2\
     -lITKTransform-5.2\
     -lITKTransformFactory-5.2\
     -litkv3p_netlib-5.2\
     -litkvcl-5.2\
     -lITKVideoCore-5.2\
     -lITKVideoIO-5.2\
     -litkvnl_algo-5.2\
     -litkvnl-5.2\
     -lITKVNLInstantiation-5.2\
     -lITKVTK-5.2\
     -lITKWatersheds-5.2\
     -litkzlib-5.2\
     -lITKznz-5.2
    }
  }

I tried many ways to sort out the issue. But still it exist. Any body please help me to sort out the issues.

Thanks in advance

Deepak Murali

Upvotes: 0

Views: 220

Answers (2)

Deepak Murali
Deepak Murali

Reputation: 1

Thank you all. Answer for the above question is available in the given url.Error while link ITK and VTK libraries to QT

Upvotes: 0

Dženan
Dženan

Reputation: 3395

ITK and VTK are meant to be used with CMake. If you don't, you need to handle all the include files and linking details yourself. Even Qt switched from QMake to CMake with Qt6.

If you insist to go without CMake, take a look at https://itk.org/Wiki/ITK/Using_ITK_Without_CMake

Upvotes: 1

Related Questions