链接ITK和VTK库与QT的错误
我想开发图像处理和可视化软件。因此,我尝试将VTK和ITK集成到QT,并使用MSVC2015编译器。不幸的是,当ITK的链接库与QT链接库时发生了错误。下面给出的完整错误。
itksys-5.2.lib(systemtools.obj): - 1:错误:lnk2019:未解决的外部符号__imp_regclosekey在函数中引用的“公共:static bool __cdecl itksys :: SystemTools :: SystemTools :: systemTools :: deletereGrueValue(deleteregistryvalue) struct std :: char_traits,类STD ::分配器> @v?$ selcator@d@2 @@ std @@ w4keywow64@12 @@ z)
,但是lib itksys-5.2.lib存在于.pro文件中。请参阅下面给出的QT .pro文件详细信息。
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
}
}
我尝试了许多方法来解决问题。但仍然存在。任何身体,请帮助我解决问题。
事先感谢
Deepak Murali
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
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
ITK和VTK旨在与Cmake一起使用。如果不这样做,则需要处理所有包含文件并自己链接详细信息。甚至QT也从Qmake切换到QT6。
如果您坚持没有Cmake,请查看 https://itk.org/wiki/itk/使用_itk_without_cmake
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
谢谢大家。以上问题的答案可在给定的URL中找到。 QT
Thank you all. Answer for the above question is available in the given url.Error while link ITK and VTK libraries to QT