错误 C1083 无法打开包含文件:'vtkGUISupportQtOpenGLModule.h': 没有那个文件或目录

Error C1083 Cannot open include file: 'vtkGUISupportQtOpenGLModule.h': No such file or directory

我正在尝试 link VTK 库到我在 Windows 7 上的项目。我得到的错误是:

Error C1083 Cannot open include file: 'vtkGUISupportQtOpenGLModule.h': No such file or directory

我的代码中引发错误的是 #include<QVTKWidget2.h>

我的 VTK 副本的 Src 和构建目录是分开的。我使用的 linking 工具是 cmake。构建工具:VS 2015.

我的 CMakeLists.txt 和 VTK 的缓存你可以在下面看到。

提前感谢您的任何建议。

CMakeLists.txt

cmake_minimum_required(VERSION 2.8)
set(PROJECT Pro)
project(${PROJECT})

set(BUILD_SHARED_LIBS false)
message("  BUILD_SHARED_LIBS " ${BUILD_SHARED_LIBS})
list(APPEND CMAKE_EXE_LINKER_FLAGS -static)

find_package(VTK REQUIRED)
include(${VTK_USE_FILE})

set(VTK_INCLUDE_DIRS
    "D:/libs/VTK-7.1.1"
    )

set(VTK_QT_INCLUDE_DIR
    "D:/libs/VTK-7.1.1/GUISupport/QtOpenGL"
    )

include_directories(${VTK_INCLUDE_DIRS} ${VTK_QT_INCLUDE_DIR})

# ... Local src declaration

add_executable(${PROJECT} ${PRO_APP_HEADERS}${PRO_APP_SOURCES})

if(VTK_LIBRARIES)
  message("VTK_LIBRARIES is set.")
  target_link_libraries(${PROJECT} ${VTK_LIBRARIES})
else(VTK_LIBRARIES)
  message("! VTK_LIBRARIES are not set completely")
  target_link_libraries(${PROJECT} vtkHybrid vtkWidgets)
endif(VTK_LIBRARIES)

VTK 的缓存 enter image description here

确保文件 "vtkGUISupportQtOpenGLModule.h" 实际上位于包含的目录之一(${VTK_INCLUDE_DIRS} 或 ${VTK_QT_INCLUDE_DIR})(你没有提到它是否存在),并且您有权访问它。

在 VTK 的 CMake(在顶部,搜索栏旁边)中单击 "Advanced",您将看到更多选项。其中之一是 Module_vtkGUISupportQtOpenGL,确保选中它。

在您的 CMake 中,我认为您的 include_directories 子句没有任何作用。您链接到的路径不是库,而是库的源,库的实际路径是 D:\VTK_build_directory\include\vtk-7.1.1\,其中 VTK_build_directory 是您构建 VTK 的任何地方(我建议使用INSTALL构建VTK,那么结果会在CMAKE_INSTALL_PREFIX目录下,可以在VTK的CMake中指定)。但是,无论如何都不需要它,因为您已经在使用 include(${VTK_USE_FILE}),它将设置所有包含文件。因此,除非您的示例中没有其他用途,否则您可以删除整个

set(VTK_INCLUDE_DIRS
    "D:/libs/VTK-7.1.1"
)

set(VTK_QT_INCLUDE_DIR
    "D:/libs/VTK-7.1.1/GUISupport/QtOpenGL"
)

include_directories(${VTK_INCLUDE_DIRS} ${VTK_QT_INCLUDE_DIR})