在 QT(5.4.2) 中使用 QVTKWidget(VTK 6.2.0) 时未解决的外部符号错误
Unresolve external symbol error when using QVTKWidget(VTK 6.2.0) in QT(5.4.2)
我的工作环境是:
Win 7 64 位
Visual Studio 2013 更新 4
VTK 6.2.0
QT 5.4.2 VS2013 64 位 opengl
我的 VTK 6.2.0 是从 CMAKE 构建的,并遵循
中提到的所有设置
Install VTK 6.2.0 with Qt 5.4 using CMake-GUI 3.2.2
Combining Qt 5.4.1 with vtk 6.2.0 (using CMake GUI 3.2.1) on windows
没有错误。
之后,我使用 Visual Studio 2013 成功构建了具有调试模式的 VTK.sln 解决方案。
然后我将"QVTKWidgetPlugin.lib"和"QVTKWidgetPlugin.dll"复制到QT 5.4.2的"lib"和"bin"文件夹中,一模一样。
我也复制了"QVTKWidgetPlugin.dll"到"C:QT's path/plugin/designer"
我在QT Creator 3.4.1新建了一个工程,拖一个Widget到主窗口,右键选择"promote to"在里面添加QVTKWidget
然后我将这两行代码添加到我的 .pro 文件中
INCLUDEPATH += C:/VTK-6.2.0/include \
LIBS += -LC:/VTK-6.2.0/A_Build/lib/Debug \
我重建了它,但出现了错误
我是不是在这个过程中遗漏了什么?
它在 visual studio 上提供的示例中有效吗?
自从我在使用 qtCreator 时遇到了同样的问题,我想到了两件事
复制 /tools/Qtcreator/bin/plugins/designer 和 /tools/QtCreator/lib/qtcreator/plugins 中的 .dll 和 .lib 似乎解决了我的 qvtkwidget 在 qtcreator 中无法识别的问题。
你在 qtcreator 中 运行 qmake 了吗?这似乎是新 qt 用户的常见错误。
编辑:3. 您是否尝试过一一添加所有必要的库?当我删除我的 makefile 的所有 "qt" 和 "qvtk" 库时,我会遇到与您完全相同的错误。
INCLUDEPATH += "C:\Program Files (x86)\VTK\include\vtk-6.2\"
LIBS += -LC:\vtk\bin\lib\Release
LIBS += -lvtkCommonCore-6.2
LIBS += -lvtkCommonExecutionModel-6.2
LIBS += -lvtksys-6.2
LIBS += -lQVTKWidgetPlugin # QT RELATED
LIBS += -lvtkChartsCore-6.2
LIBS += -lvtkViewsQt-6.2 # QT Related
LIBS += -lvtkInteractionWidgets-6.2
LIBS += -lvtkInfovisCore-6.2
LIBS += -lvtkRenderingCore-6.2
LIBS += -lvtkRenderingOpenGL-6.2
LIBS += -lvtkImagingCore-6.2
LIBS += -lvtklibxml2-6.2
LIBS += -lvtkDICOMParser-6.2
LIBS += -lvtkpng-6.2
LIBS += -lvtktiff-6.2
LIBS += -lvtkzlib-6.2
LIBS += -lvtkjpeg-6.2
LIBS += -lvtkalglib-6.2
LIBS += -lvtkexpat-6.2
LIBS += -lvtkverdict-6.2
LIBS += -lvtkmetaio-6.2
LIBS += -lvtkNetCDF-6.2
LIBS += -lvtksqlite-6.2
LIBS += -lvtkexoIIc-6.2
LIBS += -lvtkftgl-6.2
LIBS += -lvtkfreetype-6.2
LIBS += -lvtkFiltersSources-6.2
LIBS += -lvtkGUISupportQt-6.2 #QT related
LIBS += -lvtkalglib-6.2
LIBS += -lvtkChartsCore-6.2
LIBS += -lvtkCommonColor-6.2
LIBS += -lvtkCommonComputationalGeometry-6.2
LIBS += -lvtkCommonCore-6.2
LIBS += -lvtkCommonDataModel-6.2
LIBS += -lvtkCommonExecutionModel-6.2
LIBS += -lvtkCommonMath-6.2
LIBS += -lvtkCommonMisc-6.2
LIBS += -lvtkCommonSystem-6.2
LIBS += -lvtkCommonTransforms-6.2
LIBS += -lvtkDICOMParser-6.2
LIBS += -lvtkDomainsChemistry-6.2
LIBS += -lvtkexoIIc-6.2
LIBS += -lvtkexpat-6.2
LIBS += -lvtkFiltersAMR-6.2
LIBS += -lvtkFiltersCore-6.2
LIBS += -lvtkFiltersExtraction-6.2
LIBS += -lvtkFiltersFlowPaths-6.2
LIBS += -lvtkFiltersGeneral-6.2
LIBS += -lvtkFiltersGeneric-6.2
LIBS += -lvtkFiltersGeometry-6.2
LIBS += -lvtkFiltersHybrid-6.2
LIBS += -lvtkFiltersHyperTree-6.2
LIBS += -lvtkFiltersImaging-6.2
LIBS += -lvtkFiltersModeling-6.2
LIBS += -lvtkFiltersParallel-6.2
LIBS += -lvtkFiltersParallelImaging-6.2
LIBS += -lvtkFiltersProgrammable-6.2
LIBS += -lvtkFiltersSelection-6.2
LIBS += -lvtkFiltersSMP-6.2
LIBS += -lvtkFiltersSources-6.2
LIBS += -lvtkFiltersStatistics-6.2
LIBS += -lvtkFiltersTexture-6.2
LIBS += -lvtkFiltersVerdict-6.2
LIBS += -lvtkfreetype-6.2
LIBS += -lvtkftgl-6.2
LIBS += -lvtkGeovisCore-6.2
LIBS += -lvtkgl2ps-6.2
LIBS += -lvtkGUISupportQt-6.2
LIBS += -lvtkGUISupportQtOpenGL-6.2 #qt related
LIBS += -lvtkGUISupportQtSQL-6.2 #qt related
LIBS += -lvtkGUISupportQtWebkit-6.2 #qt related
LIBS += -lvtkhdf5_hl-6.2
LIBS += -lvtkhdf5-6.2
LIBS += -lvtkImagingColor-6.2
LIBS += -lvtkImagingCore-6.2
LIBS += -lvtkImagingFourier-6.2
LIBS += -lvtkImagingGeneral-6.2
LIBS += -lvtkImagingHybrid-6.2
LIBS += -lvtkImagingMath-6.2
LIBS += -lvtkImagingMorphological-6.2
LIBS += -lvtkImagingSources-6.2
LIBS += -lvtkImagingStatistics-6.2
LIBS += -lvtkImagingStencil-6.2
LIBS += -lvtkInfovisCore-6.2
LIBS += -lvtkInfovisLayout-6.2
LIBS += -lvtkInteractionImage-6.2
LIBS += -lvtkInteractionStyle-6.2
LIBS += -lvtkInteractionWidgets-6.2
LIBS += -lvtkIOAMR-6.2
LIBS += -lvtkIOCore-6.2
LIBS += -lvtkIOEnSight-6.2
LIBS += -lvtkIOExodus-6.2
LIBS += -lvtkIOExport-6.2
LIBS += -lvtkIOGeometry-6.2
LIBS += -lvtkIOImage-6.2
LIBS += -lvtkIOImport-6.2
LIBS += -lvtkIOInfovis-6.2
LIBS += -lvtkIOLegacy-6.2
LIBS += -lvtkIOLSDyna-6.2
LIBS += -lvtkIOMINC-6.2
LIBS += -lvtkIOMovie-6.2
LIBS += -lvtkIONetCDF-6.2
LIBS += -lvtkIOParallel-6.2
LIBS += -lvtkIOPLY-6.2
LIBS += -lvtkIOSQL-6.2
LIBS += -lvtkIOVideo-6.2
LIBS += -lvtkIOXML-6.2
LIBS += -lvtkIOXMLParser-6.2
LIBS += -lvtkjpeg-6.2
LIBS += -lvtkjsoncpp-6.2
LIBS += -lvtklibxml2-6.2
LIBS += -lvtkLocalExample-6.2
LIBS += -lvtkmetaio-6.2
LIBS += -lvtkNetCDF_cxx-6.2
LIBS += -lvtkNetCDF-6.2
LIBS += -lvtkoggtheora-6.2
LIBS += -lvtkParallelCore-6.2
LIBS += -lvtkpng-6.2
LIBS += -lvtkproj4-6.2
LIBS += -lvtkRenderingAnnotation-6.2
LIBS += -lvtkRenderingContext2D-6.2
LIBS += -lvtkRenderingCore-6.2
LIBS += -lvtkRenderingFreeType-6.2
LIBS += -lvtkRenderingFreeTypeOpenGL-6.2
LIBS += -lvtkRenderingGL2PS-6.2
LIBS += -lvtkRenderingImage-6.2
LIBS += -lvtkRenderingLabel-6.2
LIBS += -lvtkRenderingLIC-6.2
LIBS += -lvtkRenderingLOD-6.2
LIBS += -lvtkRenderingOpenGL-6.2
LIBS += -lvtkRenderingQt-6.2 #qt related
LIBS += -lvtkRenderingVolume-6.2
LIBS += -lvtkRenderingVolumeAMR-6.2
LIBS += -lvtkRenderingVolumeOpenGL-6.2
LIBS += -lvtksqlite-6.2
LIBS += -lvtksys-6.2
LIBS += -lvtkTestingRendering-6.2
LIBS += -lvtktiff-6.2
LIBS += -lvtkverdict-6.2
LIBS += -lvtkViewsContext2D-6.2
LIBS += -lvtkViewsCore-6.2
LIBS += -lvtkViewsGeovis-6.2
LIBS += -lvtkViewsInfovis-6.2
LIBS += -lvtkViewsQt-6.2 #QT Related
LIBS += -lvtkzlib-6.2
我的工作环境是:
Win 7 64 位
Visual Studio 2013 更新 4
VTK 6.2.0
QT 5.4.2 VS2013 64 位 opengl
我的 VTK 6.2.0 是从 CMAKE 构建的,并遵循
中提到的所有设置Install VTK 6.2.0 with Qt 5.4 using CMake-GUI 3.2.2
Combining Qt 5.4.1 with vtk 6.2.0 (using CMake GUI 3.2.1) on windows
没有错误。
之后,我使用 Visual Studio 2013 成功构建了具有调试模式的 VTK.sln 解决方案。
然后我将"QVTKWidgetPlugin.lib"和"QVTKWidgetPlugin.dll"复制到QT 5.4.2的"lib"和"bin"文件夹中,一模一样。
我也复制了"QVTKWidgetPlugin.dll"到"C:QT's path/plugin/designer"
我在QT Creator 3.4.1新建了一个工程,拖一个Widget到主窗口,右键选择"promote to"在里面添加QVTKWidget
然后我将这两行代码添加到我的 .pro 文件中
INCLUDEPATH += C:/VTK-6.2.0/include \ LIBS += -LC:/VTK-6.2.0/A_Build/lib/Debug \
我重建了它,但出现了错误
我是不是在这个过程中遗漏了什么?
它在 visual studio 上提供的示例中有效吗?
自从我在使用 qtCreator 时遇到了同样的问题,我想到了两件事
复制 /tools/Qtcreator/bin/plugins/designer 和 /tools/QtCreator/lib/qtcreator/plugins 中的 .dll 和 .lib 似乎解决了我的 qvtkwidget 在 qtcreator 中无法识别的问题。
你在 qtcreator 中 运行 qmake 了吗?这似乎是新 qt 用户的常见错误。
编辑:3. 您是否尝试过一一添加所有必要的库?当我删除我的 makefile 的所有 "qt" 和 "qvtk" 库时,我会遇到与您完全相同的错误。
INCLUDEPATH += "C:\Program Files (x86)\VTK\include\vtk-6.2\"
LIBS += -LC:\vtk\bin\lib\Release
LIBS += -lvtkCommonCore-6.2
LIBS += -lvtkCommonExecutionModel-6.2
LIBS += -lvtksys-6.2
LIBS += -lQVTKWidgetPlugin # QT RELATED
LIBS += -lvtkChartsCore-6.2
LIBS += -lvtkViewsQt-6.2 # QT Related
LIBS += -lvtkInteractionWidgets-6.2
LIBS += -lvtkInfovisCore-6.2
LIBS += -lvtkRenderingCore-6.2
LIBS += -lvtkRenderingOpenGL-6.2
LIBS += -lvtkImagingCore-6.2
LIBS += -lvtklibxml2-6.2
LIBS += -lvtkDICOMParser-6.2
LIBS += -lvtkpng-6.2
LIBS += -lvtktiff-6.2
LIBS += -lvtkzlib-6.2
LIBS += -lvtkjpeg-6.2
LIBS += -lvtkalglib-6.2
LIBS += -lvtkexpat-6.2
LIBS += -lvtkverdict-6.2
LIBS += -lvtkmetaio-6.2
LIBS += -lvtkNetCDF-6.2
LIBS += -lvtksqlite-6.2
LIBS += -lvtkexoIIc-6.2
LIBS += -lvtkftgl-6.2
LIBS += -lvtkfreetype-6.2
LIBS += -lvtkFiltersSources-6.2
LIBS += -lvtkGUISupportQt-6.2 #QT related
LIBS += -lvtkalglib-6.2
LIBS += -lvtkChartsCore-6.2
LIBS += -lvtkCommonColor-6.2
LIBS += -lvtkCommonComputationalGeometry-6.2
LIBS += -lvtkCommonCore-6.2
LIBS += -lvtkCommonDataModel-6.2
LIBS += -lvtkCommonExecutionModel-6.2
LIBS += -lvtkCommonMath-6.2
LIBS += -lvtkCommonMisc-6.2
LIBS += -lvtkCommonSystem-6.2
LIBS += -lvtkCommonTransforms-6.2
LIBS += -lvtkDICOMParser-6.2
LIBS += -lvtkDomainsChemistry-6.2
LIBS += -lvtkexoIIc-6.2
LIBS += -lvtkexpat-6.2
LIBS += -lvtkFiltersAMR-6.2
LIBS += -lvtkFiltersCore-6.2
LIBS += -lvtkFiltersExtraction-6.2
LIBS += -lvtkFiltersFlowPaths-6.2
LIBS += -lvtkFiltersGeneral-6.2
LIBS += -lvtkFiltersGeneric-6.2
LIBS += -lvtkFiltersGeometry-6.2
LIBS += -lvtkFiltersHybrid-6.2
LIBS += -lvtkFiltersHyperTree-6.2
LIBS += -lvtkFiltersImaging-6.2
LIBS += -lvtkFiltersModeling-6.2
LIBS += -lvtkFiltersParallel-6.2
LIBS += -lvtkFiltersParallelImaging-6.2
LIBS += -lvtkFiltersProgrammable-6.2
LIBS += -lvtkFiltersSelection-6.2
LIBS += -lvtkFiltersSMP-6.2
LIBS += -lvtkFiltersSources-6.2
LIBS += -lvtkFiltersStatistics-6.2
LIBS += -lvtkFiltersTexture-6.2
LIBS += -lvtkFiltersVerdict-6.2
LIBS += -lvtkfreetype-6.2
LIBS += -lvtkftgl-6.2
LIBS += -lvtkGeovisCore-6.2
LIBS += -lvtkgl2ps-6.2
LIBS += -lvtkGUISupportQt-6.2
LIBS += -lvtkGUISupportQtOpenGL-6.2 #qt related
LIBS += -lvtkGUISupportQtSQL-6.2 #qt related
LIBS += -lvtkGUISupportQtWebkit-6.2 #qt related
LIBS += -lvtkhdf5_hl-6.2
LIBS += -lvtkhdf5-6.2
LIBS += -lvtkImagingColor-6.2
LIBS += -lvtkImagingCore-6.2
LIBS += -lvtkImagingFourier-6.2
LIBS += -lvtkImagingGeneral-6.2
LIBS += -lvtkImagingHybrid-6.2
LIBS += -lvtkImagingMath-6.2
LIBS += -lvtkImagingMorphological-6.2
LIBS += -lvtkImagingSources-6.2
LIBS += -lvtkImagingStatistics-6.2
LIBS += -lvtkImagingStencil-6.2
LIBS += -lvtkInfovisCore-6.2
LIBS += -lvtkInfovisLayout-6.2
LIBS += -lvtkInteractionImage-6.2
LIBS += -lvtkInteractionStyle-6.2
LIBS += -lvtkInteractionWidgets-6.2
LIBS += -lvtkIOAMR-6.2
LIBS += -lvtkIOCore-6.2
LIBS += -lvtkIOEnSight-6.2
LIBS += -lvtkIOExodus-6.2
LIBS += -lvtkIOExport-6.2
LIBS += -lvtkIOGeometry-6.2
LIBS += -lvtkIOImage-6.2
LIBS += -lvtkIOImport-6.2
LIBS += -lvtkIOInfovis-6.2
LIBS += -lvtkIOLegacy-6.2
LIBS += -lvtkIOLSDyna-6.2
LIBS += -lvtkIOMINC-6.2
LIBS += -lvtkIOMovie-6.2
LIBS += -lvtkIONetCDF-6.2
LIBS += -lvtkIOParallel-6.2
LIBS += -lvtkIOPLY-6.2
LIBS += -lvtkIOSQL-6.2
LIBS += -lvtkIOVideo-6.2
LIBS += -lvtkIOXML-6.2
LIBS += -lvtkIOXMLParser-6.2
LIBS += -lvtkjpeg-6.2
LIBS += -lvtkjsoncpp-6.2
LIBS += -lvtklibxml2-6.2
LIBS += -lvtkLocalExample-6.2
LIBS += -lvtkmetaio-6.2
LIBS += -lvtkNetCDF_cxx-6.2
LIBS += -lvtkNetCDF-6.2
LIBS += -lvtkoggtheora-6.2
LIBS += -lvtkParallelCore-6.2
LIBS += -lvtkpng-6.2
LIBS += -lvtkproj4-6.2
LIBS += -lvtkRenderingAnnotation-6.2
LIBS += -lvtkRenderingContext2D-6.2
LIBS += -lvtkRenderingCore-6.2
LIBS += -lvtkRenderingFreeType-6.2
LIBS += -lvtkRenderingFreeTypeOpenGL-6.2
LIBS += -lvtkRenderingGL2PS-6.2
LIBS += -lvtkRenderingImage-6.2
LIBS += -lvtkRenderingLabel-6.2
LIBS += -lvtkRenderingLIC-6.2
LIBS += -lvtkRenderingLOD-6.2
LIBS += -lvtkRenderingOpenGL-6.2
LIBS += -lvtkRenderingQt-6.2 #qt related
LIBS += -lvtkRenderingVolume-6.2
LIBS += -lvtkRenderingVolumeAMR-6.2
LIBS += -lvtkRenderingVolumeOpenGL-6.2
LIBS += -lvtksqlite-6.2
LIBS += -lvtksys-6.2
LIBS += -lvtkTestingRendering-6.2
LIBS += -lvtktiff-6.2
LIBS += -lvtkverdict-6.2
LIBS += -lvtkViewsContext2D-6.2
LIBS += -lvtkViewsCore-6.2
LIBS += -lvtkViewsGeovis-6.2
LIBS += -lvtkViewsInfovis-6.2
LIBS += -lvtkViewsQt-6.2 #QT Related
LIBS += -lvtkzlib-6.2