尝试在Windows 10上使用VTK-6.3.0和Qt-4.8.5与QtCreator-4.1

时间:2016-11-19 15:27:55

标签: c++ qt4 windows-10 qt-creator qvtkwidget

对于一个项目,我需要在Windows 10上使用VTK和Qt(在C ++上使用QtCreator),但我有一个问题。

让我解释一下我在进一步做之前所做的事情:

  • 我使用 MinGW 32位和Qt-5.7
  • 安装 QtCreator-4.1
  • 我在Qt目录中下载并安装 Qt-4.8.5 (QtCreator的MaintenanceTool中没有提出)
  • 我下载 VTK-6.3.0
  • 我使用QtCreator编译VTK(以及Qt4的套件),发布时 BUILD_SHARED_LIBS = True VTK_Group_Qt = True

然后,我使用一个示例和我的老师给我的CMakeLists.txt,使用Qt和VTK,但我有一个错误:

  

找不到-lQVTK

在此代码中我们使用:

#include <QVTKWidget.h>

在我的构建目录中,我找到:“libQVTKWidgetPlugin.dll.a”和“libQVTKWidgetPlugin.dll”。

这是我使用的CMakeLists.txt(它是为Linux用户编写的,但我没有足够的经验来改变它......):

project(foot)

cmake_minimum_required(VERSION 2.8)

# Where I built VTK
set(VTK_DIR "C:/Lib/VTK/build-VTK-6.3.0-Desktop_Qt_4_8_5_MinGW_32bit-Release")
find_package(VTK REQUIRED)
include(${VTK_USE_FILE})

set( Srcs main.cpp mainwindow.cpp )
set( Hdrs mainwindow.h )
set( MOC_Hdrs mainwindow.h )

# Use the include path and library for Qt that is used by VTK.
include_directories(
  ${CMAKE_CURRENT_BINARY_DIR}
  ${CMAKE_CURRENT_SOURCE_DIR}
)

# Instruct CMake to run moc automatically when needed.
set(CMAKE_AUTOMOC ON)

if(VTK_QT_VERSION VERSION_GREATER "4")
  find_package(Qt5Widgets)
  qt5_wrap_ui(UI_Srcs)

  add_executable(qtevents
    MACOSX_BUNDLE  ${Srcs} ${Hdrs} ${MOC_Hdrs})
  qt5_use_modules(qtevents Core Gui Widgets)
  target_link_libraries(qtevents ${VTK_LIBRARIES})
else()
  find_package(Qt4 REQUIRED)
  include(${QT_USE_FILE})
  # Use what VTK built with
  set(QT_QMAKE_EXECUTABLE ${VTK_QT_QMAKE_EXECUTABLE} CACHE FILEPATH "")
  set(QT_MOC_EXECUTABLE ${VTK_QT_MOC_EXECUTABLE} CACHE FILEPATH "")
  set(QT_UIC_EXECUTABLE ${VTK_QT_UIC_EXECUTABLE} CACHE FILEPATH "")
  qt4_wrap_cpp(MOCSrcs ${MOC_Hdrs})

  add_executable(foot ${Srcs} ${Hdrs} ${MOC_Hdrs})
  target_link_libraries(foot ${VTK_LIBRARIES} QVTK)
endif()

我真的不明白我做错了什么,我的老师也帮不了我...... 如果你有任何想法...... 如果需要,我很乐意为您提供更多信息!

0 个答案:

没有答案