2016-02-13 131 views
1

我试图建立与QTCreator在Windows10使用的QVTKWidget的应用程序,但我得到链接错误(S):QT5,VTK7,QtCreator:QVTKWidget链接错误

mainwindow.obj:-1: error: LNK2019: unresolved external symbol "__declspec(dllimport) public: __cdecl QVTKWidget::QVTKWidget(class QWidget *,class QFlags<enum Qt::WindowType>)" referenced in function "public: void __cdecl Ui_MainWindow::setupUi(class QMainWindow *)" 

我已经下载QT5 .5用于msvc2013和msvc2013_64。我已经下载了VTK7,并使用CMake构建了Qt支持。我构建了一个vtk32和vtk64。我已将D:\VTK\vtk32\bin\Release\QVTKWidgetPlugin.dll复制到C:\Qt\Tools\QtCreator\bin\plugins\designer,当我启动QTCreator时,QVTKWidget显示在可用表单控件的QVTK部分的底部。

我将QVTKWidget添加到我的表单中,并使用msvc2013 Release构建应用程序。然后我得到链接错误。我缺少什么库?

下面是我的.pro文件

QT  += core gui 

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets 

TARGET = MIViewer 
TEMPLATE = app 


SOURCES += main.cpp\ 
     mainwindow.cpp 

HEADERS += mainwindow.h 

FORMS += mainwindow.ui 

win32 { 
    INCLUDEPATH += D:\VTK\VTK-7.0.0\GUISupport\Qt 
    INCLUDEPATH += D:\VTK\VTK-7.0.0\Common\Core 
    INCLUDEPATH += D:\VTK\VTK-7.0.0\Rendering\Core 
} 

win32-msvc2013 { 
    INCLUDEPATH += D:\VTK\vtk32\GUISupport\Qt 
    INCLUDEPATH += D:\VTK\vtk32\Interaction\Style 
    INCLUDEPATH += D:\VTK\vtk32\Rendering\Core 
    INCLUDEPATH += D:\VTK\vtk32\Rendering\OpenGL2 
    INCLUDEPATH += D:\VTK\vtk32\Common\Core 
    LIBS += -LD:\VTK\vtk32\lib\Release 
} 

win32-msvc2013_64 { 
    INCLUDEPATH += D:\VTK\vtk64\GUISupport\Qt 
    INCLUDEPATH += D:\VTK\vtk64\Interaction\Style 
    INCLUDEPATH += D:\VTK\vtk64\Rendering\Core 
    INCLUDEPATH += D:\VTK\vtk64\Rendering\OpenGL2 
    INCLUDEPATH += D:\VTK\vtk64\Common\Core 
    LIBS += -LD:\VTK\vtk64\lib\Release 
} 

LIBS += -lQVTKWidgetPlugin \ 
     -lvtkGUISupportQt-7.0 \ 
     -lvtkRenderingQt-7.0 

回答

0

只是想回答的情况下,任何人自己的问题别人遇到这个职位有类似的计划。我可以通过重新编译32位VTK并选择所有Cmake Qt选项并填写路径来修复此问题。我在CMake中没有正确的路径,但cmake没有抱怨并生成VS解决方案文件。我没有注意到,在我尝试重新编译VTK之前,有20%的项目失败了。

当试图诊断链接器错误时,它并不神秘。有一些缺失!只需逐个查看依赖关系清单,即可为我解决问题。