1

Windows10 で QVTKWidget を使用する QTCreator を使用してアプリケーションをビルドしようとしていますが、リンカー エラーが発生します。

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 をビルドしました。QTCreator にコピーD:\VTK\vtk32\bin\Release\QVTKWidgetPlugin.dllしてC:\Qt\Tools\QtCreator\bin\plugins\designer起動すると、使用可能なフォーム コントロールの QVTK セクションの下に QVTKWidget が表示されます。

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
4

1 に答える 1

0

他の誰かが同様のプログラムでこの投稿に出くわした場合に備えて、私自身の質問に答えたかっただけです。すべての Cmake Qt オプションを選択し、パスを入力して 32 ビット VTK を再コンパイルすることで、これを修正できました。CMake には正しいパスがありませんでしたが、cmake は文句を言わず、VS ソリューション ファイルを生成しました。また、VTK を再コンパイルするまで、プロジェクトの 20% が失敗したことに気付きませんでした。

リンカ エラーを診断しようとするとき、不思議なことは何もありません。何か足りない!依存関係のチェックリストを1つずつ確認するだけで解決しました。

于 2016-02-21T20:33:46.417 に答える