[vtkusers] Inresolved external for QVTKWidget in VTK-8.0.1.

Zoltan Kovacs Zoltan.Kovacs at esi-group.com
Mon Oct 16 05:39:51 EDT 2017


Dear Dan,

In QtCreator I added a QWidget to the UI form and used "Promote to ..." 
QVTKOpenGLWidget class for it. I also included QVTKOpenGLWidget.h in the 
header file of the application. However, when linking the source I get 
the error message

distortionpage.obj:-1: Fehler: LNK2019: unresolved external symbol 
"__declspec(dllimport) public: __thiscall 
QVTKOpenGLWidget::QVTKOpenGLWidget(class QWidget *,class QFlags<enum 
Qt::WindowType>)" 
(__imp_??0QVTKOpenGLWidget@@QAE at PAVQWidget@@V?$QFlags at W4WindowType@Qt@@@@@Z) 
referenced in function "public: void __thiscall 
Ui_DistortionPage::setupUi(class QWidget *)" 
(?setupUi at Ui_DistortionPage@@QAEXPAVQWidget@@@Z)


It seems that the MSVC2013 linker cannot find the library of 
QVTKOpenGLWidget. I searched a library file with a similar name in the 
folder where CMake generated the VTK libraries with Qt support but I 
could not find it. I am just wondering if it is missing or some other 
library file with a completely different name contains this symbol.

Regards,
Zoltan



Am 10.10.2017 um 19:23 schrieb Dan Lipsa:
> In Qt Designer you should be able to use QVTKOpenGLWidget by adding 
> first a QOpenGLWidget and then 'Promote to ...' a QVTKOpenGLWidget. So 
> you can build the UI of your Qt application this way.
> 
> I am not sure what is needed for QtCreator. I don't use that.
> 
> Hope this helps,
> Dan
> 
> 
> On Tue, Oct 10, 2017 at 10:59 AM, Zoltan Kovacs 
> <Zoltan.Kovacs at esi-group.com <mailto:Zoltan.Kovacs at esi-group.com>> wrote:
> 
>     Dear Mike,
> 
>     Thank you very much for your prompt answer. As I wrote to Dan, we
>     have to use QtCreator for the development here. Then I have access
>     only for qmake and I can edit project files for it. If
>     QVTKOpenGLWidget is the only VTK widget class supported for Qt5 then
>     I ave to find out how to insert such an object into the UI form file
>     of QT.
> 
>     Kind regards,
>     Zoltan
> 
>     Am 10.10.2017 um 16:48 schrieb Mike Chinander:
> 
>         Also, when working with VTK, it will be a lot easier to switch
>         to using CMake instead of Qt project files (QtCreator supports
>         CMake). Look at the examples Dan linked to. You will have to
>         update the CMakelists.txt file for Qt. You will probably have to
>         add the following:
> 
>         FIND_PACKAGE(Qt5Core REQUIRED)
>         FIND_PACKAGE(Qt5Widgets REQUIRED)
> 
>         and update the target_link_libraries line(add Qt5::Widget) , e.g.,:
> 
>         target_link_libraries(QtBarChart Qt5::Widgets ${VTK_LIBRARIES})
> 
>         On Tue, Oct 10, 2017 at 9:33 AM, Dan Lipsa
>         <dan.lipsa at kitware.com <mailto:dan.lipsa at kitware.com>
>         <mailto:dan.lipsa at kitware.com <mailto:dan.lipsa at kitware.com>>>
>         wrote:
> 
>              Zoltan,
>              This is unrelated to the error you are seeing however:
> 
>              For Qt5 you'll need to use QVTKOpenGLWidget rather than
>         QVTKWidget.  See
>         https://lorensen.github.io/VTKExamples/site/Cxx/
>         <https://lorensen.github.io/VTKExamples/site/Cxx/>
>              <https://lorensen.github.io/VTKExamples/site/Cxx/
>         <https://lorensen.github.io/VTKExamples/site/Cxx/>>
>              All examples are converted to Qt5. Also, VTK master has a
>         number of
>              examples that have been converted to Qt5: Examples/GUI/Qt
> 
>              Hope this helps,
>              Dan
> 
> 
>              On Tue, Oct 10, 2017 at 10:10 AM, Zoltan Kovacs
>              <Zoltan.Kovacs at esi-group.com
>         <mailto:Zoltan.Kovacs at esi-group.com>
>         <mailto:Zoltan.Kovacs at esi-group.com
>         <mailto:Zoltan.Kovacs at esi-group.com>>>
> 
>              wrote:
> 
>                  Dear all,
> 
>                  In CMake I generated a solution project of VTK-8.0.1
>         with Qt5
>                  support for MSVS2013. After having run the ALL_BUILD
>         and INSTALL
>                  projects with the install prefix C:\VTK\8.0.1 in VM2013
>         I could
>                  installed the Win32 bit binaries of VTK 8.0.1 in that
>         folder.
>                  The header files and the libraries are located in
>                  C:\VTK\8.0.1\include\vtk-8.0   and
>                  C:\VTK\8.0.1\lib.
> 
>                  I copied the file QVTKWidgetPlugin.dll from the VTK binary
>                  folders to the plugin folder of QTCreator, which uses
>         QT 5.8
>                  msvs2013 32 bit version.
> 
>                  Then I set the include and library paths and added all
>         the VTK
>                  libary files from C:\VTK\8.0.1\lib for the linker
>         setting in the
>                  project file
>                  of a QT application in QtCreator:
> 
>                  INCLUDEPATH += C:\VTK\8.0.1\include\vtk-8.0
>                  LIBS += -LC:\VTK\8.0.1\lib
> 
>                  LIBS += -lvtkRenderingLabel-8.0 \
>                  -lvtkRenderingLOD-8.0 \
>                  -lvtkRenderingOpenGL2-8.0 \
>                  -lvtkRenderingQt-8.0 \
>                  -lvtkRenderingVolume-8.0 \
>                  -lvtkRenderingVolumeOpenGL2-8.0 \
>                  -lvtksqlite-8.0 \
>                  -lvtksys-8.0 \
>                  -lvtkTestingGenericBridge-8.0 \
>                  -lvtkTestingIOSQL-8.0 \
>                  -lvtkTestingRendering-8.0 \
>                  -lvtktiff-8.0 \
>                  -lvtkverdict-8.0 \
>                  -lvtkViewsContext2D-8.0 \
>                  -lvtkViewsCore-8.0 \
>                  -lvtkViewsInfovis-8.0 \
>                  -lvtkViewsQt-8.0 \
>                  -lvtkzlib-8.0 \
>                  -lvtkalglib-8.0 \
>                  -lvtkChartsCore-8.0 \
>                  -lvtkCommonColor-8.0 \
>                  -lvtkCommonComputationalGeometry-8.0 \
>                  -lvtkCommonCore-8.0 \
>                  -lvtkCommonDataModel-8.0 \
>                  -lvtkCommonExecutionModel-8.0 \
>                  -lvtkCommonMath-8.0 \
>                  -lvtkCommonMisc-8.0 \
>                  -lvtkCommonSystem-8.0 \
>                  -lvtkCommonTransforms-8.0 \
>                  -lvtkDICOMParser-8.0 \
>                  -lvtkDomainsChemistry-8.0 \
>                  -lvtkDomainsChemistryOpenGL2-8.0 \
>                  -lvtkexoIIc-8.0 \
>                  -lvtkexpat-8.0 \
>                  -lvtkFiltersAMR-8.0 \
>                  -lvtkFiltersCore-8.0 \
>                  -lvtkFiltersExtraction-8.0 \
>                  -lvtkFiltersFlowPaths-8.0 \
>                  -lvtkFiltersGeneral-8.0 \
>                  -lvtkFiltersGeneric-8.0 \
>                  -lvtkFiltersGeometry-8.0 \
>                  -lvtkFiltersHybrid-8.0 \
>                  -lvtkFiltersHyperTree-8.0 \
>                  -lvtkFiltersImaging-8.0 \
>                  -lvtkFiltersModeling-8.0 \
>                  -lvtkFiltersParallel-8.0 \
>                  -lvtkFiltersParallelImaging-8.0 \
>                  -lvtkFiltersPoints-8.0 \
>                  -lvtkFiltersProgrammable-8.0 \
>                  -lvtkFiltersSelection-8.0 \
>                  -lvtkFiltersSMP-8.0 \
>                  -lvtkFiltersSources-8.0 \
>                  -lvtkFiltersStatistics-8.0 \
>                  -lvtkFiltersTexture-8.0 \
>                  -lvtkFiltersTopology-8.0 \
>                  -lvtkFiltersVerdict-8.0 \
>                  -lvtkfreetype-8.0 \
>                  -lvtkGeovisCore-8.0 \
>                  -lvtkgl2ps-8.0 \
>                  -lvtkglew-8.0 \
>                  -lvtkGUISupportQt-8.0 \
>                  -lvtkGUISupportQtSQL-8.0 \
>                  -lvtkhdf5_hl-8.0 \
>                  -lvtkhdf5-8.0 \
>                  -lvtkImagingColor-8.0 \
>                  -lvtkImagingCore-8.0 \
>                  -lvtkImagingFourier-8.0 \
>                  -lvtkImagingGeneral-8.0 \
>                  -lvtkImagingHybrid-8.0 \
>                  -lvtkImagingMath-8.0 \
>                  -lvtkImagingMorphological-8.0 \
>                  -lvtkImagingSources-8.0 \
>                  -lvtkImagingStatistics-8.0 \
>                  -lvtkImagingStencil-8.0 \
>                  -lvtkInfovisCore-8.0 \
>                  -lvtkInfovisLayout-8.0 \
>                  -lvtkInteractionImage-8.0 \
>                  -lvtkInteractionStyle-8.0 \
>                  -lvtkInteractionWidgets-8.0 \
>                  -lvtkIOAMR-8.0 \
>                  -lvtkIOCore-8.0 \
>                  -lvtkIOEnSight-8.0 \
>                  -lvtkIOExodus-8.0 \
>                  -lvtkIOExport-8.0 \
>                  -lvtkIOExportOpenGL2-8.0 \
>                  -lvtkIOGeometry-8.0 \
>                  -lvtkIOImage-8.0 \
>                  -lvtkIOImport-8.0 \
>                  -lvtkIOInfovis-8.0 \
>                  -lvtkIOLegacy-8.0 \
>                  -lvtkIOLSDyna-8.0 \
>                  -lvtkIOMINC-8.0 \
>                  -lvtkIOMovie-8.0 \
>                  -lvtkIONetCDF-8.0 \
>                  -lvtkIOParallel-8.0 \
>                  -lvtkIOParallelXML-8.0 \
>                  -lvtkIOPLY-8.0 \
>                  -lvtkIOSQL-8.0 \
>                  -lvtkIOTecplotTable-8.0 \
>                  -lvtkIOVideo-8.0 \
>                  -lvtkIOXML-8.0 \
>                  -lvtkIOXMLParser-8.0 \
>                  -lvtkjpeg-8.0 \
>                  -lvtkjsoncpp-8.0 \
>                  -lvtklibharu-8.0 \
>                  -lvtklibxml2-8.0 \
>                  -lvtkLocalExample-8.0 \
>                  -lvtklz4-8.0 \
>                  -lvtkmetaio-8.0 \
>                  -lvtknetcdf_c++ \
>                  -lvtkNetCDF-8.0 \
>                  -lvtkoggtheora-8.0 \
>                  -lvtkParallelCore-8.0 \
>                  -lvtkpng-8.0 \
>                  -lvtkproj4-8.0 \
>                  -lvtkRenderingAnnotation-8.0 \
>                  -lvtkRenderingContext2D-8.0 \
>                  -lvtkRenderingContextOpenGL2-8.0 \
>                  -lvtkRenderingCore-8.0 \
>                  -lvtkRenderingFreeType-8.0 \
>                  -lvtkRenderingGL2PSOpenGL2-8.0 \
>                  -lvtkRenderingImage-8.0 \
> 
> 
>                  However, if I add a QVTKWidget on the UI file of the
>                  application, include the file QVTKWidget.h in the
>         header file of
>                  the application and I try to link it in QtCreator with the
>                  32-bit VTK and Qt libraries, MSVS2013 (in the toolchain of
>                  QtCreator) sends error messages for unresolved external
>         symbols
>                  for all the functions/classes belonging to the
>         QVTKWidget, such as
> 
>                  distortionpage.obj:-1: Fehler: LNK2019: unresolved external
>                  symbol "__declspec(dllimport) public: __thiscall
>                  QVTKWidget::QVTKWidget(class QWidget *,class QFlags<enum
>                  Qt::WindowType>)"
>                 
>         (__imp_??0QVTKWidget@@QAE at PAVQWidget@@V?$QFlags at W4WindowType@Qt@@@@@Z)
>                  referenced in function "public: void __thiscall
>                  Ui_DistortionPage::setupUi(class QWidget *)"
>                  (?setupUi at Ui_DistortionPage@@QAEXPAVQWidget@@@Z)
> 
> 
>                  It seems that the linker could not find the libary for the
>                  QVTKWidget plugin, which is loaded since I could chose
>         QtWidget
>                  from the widget list in the UI form editor in
>         QtCreator. I do
>                  not see any ABI issue here since I use the 32 bit mscv2103
>                  version of Qt and I also compiled and linked the 32 bit
>         version
>                  of VTK libaries and plugin files with MSVS2013. I am
>         wondering
>                  if anybody could make VTK-8.1 working with Qt. Thanks a
>         lot.
> 
>                  Kind regars,
>                  Zoltan
> 
>                  Regards,
>                  Zoltan
> 
>                  Am 09.10.2017 um 07:34 schrieb support at qt.io
>         <mailto:support at qt.io> <mailto:support at qt.io
>         <mailto:support at qt.io>>:
> 
>                      Hi Zoltan,
> 
>                      I don't know how the widget should be installed or
>         set up in
>                      a project, but you could just search for the header
>         file and
>                      point INCLUDEPATH to the folder that contains it.
> 
>                      Regards,
>                      Joni
> 
>                      On 06 October 2017 at 18:26:00 EEST
>         Zoltan.Kovacs at esi-group.com <mailto:Zoltan.Kovacs at esi-group.com>
>                      <mailto:Zoltan.Kovacs at esi-group.com
>         <mailto:Zoltan.Kovacs at esi-group.com>> wrote:
> 
>                          Hi Joni,
> 
>                          I see. However I found MSCV2013 32 bit version
>         for Qt
>                          5.8. I install
>                          that version and I built the VTK binaries for win32
>                          platform with
>                          MVS2013. After having copied the VTK plugin
>         file into
>                          the plugin folder
>                          of QtCreator I could launch it successfully. The
>                          QVTKWidget is in the
>                          Widget list of QtCreator now. I could insert a
>                          QVTKWidget in the UI form
>                          as well. The only problem now is that QtCreator
>         cannot
>                          find the header
>                          file for QVTKWidget. It is not cleat how to set the
>                          INCLUDEPATH in the
>                          project file since VS2103 did not create a separate
>                          include folder in
>                          the target folder C:/VTK/bin for the VTK
>         binaries. Only
>                          the library
>                          files have a separate folder,
>         C:/VTK/bin/lib/Release.
> 
>                          Regards,
>                          Zoltan
> 
>                          Am 06.10.2017 um 12:08 schrieb support at qt.io
>         <mailto:support at qt.io>
>                          <mailto:support at qt.io <mailto:support at qt.io>>:
> 
>                              Hi Zoltan,
> 
>                              On 06 October 2017 at 13:00:00 EEST
>         Zoltan.Kovacs at esi-group.com <mailto:Zoltan.Kovacs at esi-group.com>
>                              <mailto:Zoltan.Kovacs at esi-group.com
>         <mailto:Zoltan.Kovacs at esi-group.com>> wrote:
> 
>                                  Hi Joni,
> 
>                                  Thank you very much for your answer.
>         Then I try
>                                  to install everything
>                                  from scratch. The only prolem is I have
>         only
>                                  MSVC 2103 and the only
>                                  option in the selection list of the online
>                                  installer for MSVC 2013 is
>                                  the 64 bit version. Is there somewhere an
>                                  installer on your website wich
>                                  provides a relatively new Qt version
>         with MSVC
>                                  2103 32 bit version?
>                                  Thank you very much for your help.
> 
> 
>                              No, but you could compile it from source
>         yourself.
>                              However, note that you cannot build plugins
>         for new
>                              Qt Creator with MSVC 2013 as it uses
>         different ABI.
>                              You could use MSVC 2015 or MSVC 2017.
> 
>                              Or you could build 64bit version of Qt
>         Creator from
>                              source with that Qt version you have installed.
> 
>                              Regards,
>                              Joni
>                              --
>                              Joni Poikelin
>                              Software Engineer,
>                              The Qt Company
>                              –
>                              FAQs -
>         https://wiki.qt.io/KnowledgeBase:SupportFAQ
>         <https://wiki.qt.io/KnowledgeBase:SupportFAQ>
>                             
>         <https://wiki.qt.io/KnowledgeBase:SupportFAQ
>         <https://wiki.qt.io/KnowledgeBase:SupportFAQ>>
> 
>                      --
>                      Joni Poikelin
>                      Software Engineer,
>                      The Qt Company
>                      –
>                      FAQs - https://wiki.qt.io/KnowledgeBase:SupportFAQ
>         <https://wiki.qt.io/KnowledgeBase:SupportFAQ>
>                      <https://wiki.qt.io/KnowledgeBase:SupportFAQ
>         <https://wiki.qt.io/KnowledgeBase:SupportFAQ>>
> 
>                  _______________________________________________
>                  Powered by www.kitware.com <http://www.kitware.com>
>         <http://www.kitware.com>
> 
>                  Visit other Kitware open-source projects at
>         http://www.kitware.com/opensource/opensource.html
>         <http://www.kitware.com/opensource/opensource.html>
>                  <http://www.kitware.com/opensource/opensource.html
>         <http://www.kitware.com/opensource/opensource.html>>
> 
>                  Please keep messages on-topic and check the VTK FAQ at:
>         http://www.vtk.org/Wiki/VTK_FAQ
>         <http://www.vtk.org/Wiki/VTK_FAQ>
>         <http://www.vtk.org/Wiki/VTK_FAQ <http://www.vtk.org/Wiki/VTK_FAQ>>
> 
>                  Search the list archives at:
>         http://markmail.org/search/?q=vtkusers
>         <http://markmail.org/search/?q=vtkusers>
>                  <http://markmail.org/search/?q=vtkusers
>         <http://markmail.org/search/?q=vtkusers>>
> 
>                  Follow this link to subscribe/unsubscribe:
>         http://public.kitware.com/mailman/listinfo/vtkusers
>         <http://public.kitware.com/mailman/listinfo/vtkusers>
>                  <http://public.kitware.com/mailman/listinfo/vtkusers
>         <http://public.kitware.com/mailman/listinfo/vtkusers>>
> 
> 
> 
>              _______________________________________________
>              Powered by www.kitware.com <http://www.kitware.com>
>         <http://www.kitware.com>
> 
>              Visit other Kitware open-source projects at
>         http://www.kitware.com/opensource/opensource.html
>         <http://www.kitware.com/opensource/opensource.html>
>              <http://www.kitware.com/opensource/opensource.html
>         <http://www.kitware.com/opensource/opensource.html>>
> 
>              Please keep messages on-topic and check the VTK FAQ at:
>         http://www.vtk.org/Wiki/VTK_FAQ
>         <http://www.vtk.org/Wiki/VTK_FAQ>
>         <http://www.vtk.org/Wiki/VTK_FAQ <http://www.vtk.org/Wiki/VTK_FAQ>>
> 
>              Search the list archives at:
>         http://markmail.org/search/?q=vtkusers
>         <http://markmail.org/search/?q=vtkusers>
>              <http://markmail.org/search/?q=vtkusers
>         <http://markmail.org/search/?q=vtkusers>>
> 
>              Follow this link to subscribe/unsubscribe:
>         http://public.kitware.com/mailman/listinfo/vtkusers
>         <http://public.kitware.com/mailman/listinfo/vtkusers>
>              <http://public.kitware.com/mailman/listinfo/vtkusers
>         <http://public.kitware.com/mailman/listinfo/vtkusers>>
> 
> 
> 
> 
>         _______________________________________________
>         Powered by www.kitware.com <http://www.kitware.com>
> 
>         Visit other Kitware open-source projects at
>         http://www.kitware.com/opensource/opensource.html
>         <http://www.kitware.com/opensource/opensource.html>
> 
>         Please keep messages on-topic and check the VTK FAQ at:
>         http://www.vtk.org/Wiki/VTK_FAQ <http://www.vtk.org/Wiki/VTK_FAQ>
> 
>         Search the list archives at:
>         http://markmail.org/search/?q=vtkusers
>         <http://markmail.org/search/?q=vtkusers>
> 
>         Follow this link to subscribe/unsubscribe:
>         http://public.kitware.com/mailman/listinfo/vtkusers
>         <http://public.kitware.com/mailman/listinfo/vtkusers>
> 
>     _______________________________________________
>     Powered by www.kitware.com <http://www.kitware.com>
> 
>     Visit other Kitware open-source projects at
>     http://www.kitware.com/opensource/opensource.html
>     <http://www.kitware.com/opensource/opensource.html>
> 
>     Please keep messages on-topic and check the VTK FAQ at:
>     http://www.vtk.org/Wiki/VTK_FAQ <http://www.vtk.org/Wiki/VTK_FAQ>
> 
>     Search the list archives at: http://markmail.org/search/?q=vtkusers
>     <http://markmail.org/search/?q=vtkusers>
> 
>     Follow this link to subscribe/unsubscribe:
>     http://public.kitware.com/mailman/listinfo/vtkusers
>     <http://public.kitware.com/mailman/listinfo/vtkusers>
> 
> 


More information about the vtkusers mailing list