我试图用QTCreator在Windows10上构建一个使用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 *)"我已经下载了适用于msvc2013和msvc2013_64的Qt5.5。我已经下载了VTK7,并使用CMake构建了Qt支持。我构建了一个vtk32和vtk64。我已经将D:\VTK\vtk32\bin\Release\QVTKWidgetPlugin.dll复制到C:\Qt\Tools\QtCreator\bin\plugins\designer,当我启动QTCreator时,QVTKWidget显示在可用表单控件的QVTK部分的底部。
我将QVTKWidget添加到我的表单中,并使用msvc2013版本构建应用程序。然后我得到了链接器错误。我错过了什么库?
下面是我的.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发布于 2016-02-22 04:33:46
只是想回答我自己的问题,以防其他人在这篇文章中遇到类似的程序。我可以通过重新编译32位VTK并选择所有Cmake Qt选项和填充路径来修复此问题。我在CMake中没有正确的路径,但cmake没有任何错误,并生成了VS解决方案文件。直到我尝试重新编译VTK,我才注意到有20%的项目失败了。
当尝试诊断链接器错误时,这并不神秘。有什么东西不见了!只需一个接一个地检查依赖项清单,就能为我解决这个问题。
https://stackoverflow.com/questions/35385766
复制相似问题