对于一个项目,我需要在 Windows 10 上使用 VTK 和 Qt(在 C++ 上使用 QtCreator),但我有一个问题。
在继续之前,让我解释一下我所做的事情:
- 我用MinGW 32bit和 Qt-5.7安装QtCreator-4.1
- 我在Qt目录下下载安装Qt-4.8.5(QtCreator的MaintenanceTool中没有建议)
- 我下载VTK-6.3.0
- 我在发布时使用 QtCreator(以及带有 Qt4 的工具包)编译 VTK,其中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()
我真的不明白我做错了什么,我的老师无法帮助我...如果您有任何想法...如果需要,我很乐意为您提供更多信息!