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

时间:2017-11-14 12:28:06

标签: c++ cmake vtk

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

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

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

我的VTK副本的Src和构建目录是分开的。我使用的链接工具是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

2 个答案:

答案 0 :(得分:0)

确保文件&#34; vtkGUISupportQtOpenGLModule.h&#34;实际上位于其中一个dirs($ {VTK_INCLUDE_DIRS}或$ {VTK_QT_INCLUDE_DIR})(你没有提到它是否存在),并且你有权限。

答案 1 :(得分:0)

点击VTK的CMake中的“高级”(在搜索栏旁边的顶部),您会看到更多选项。其中一个是Module_vtkGUISupportQtOpenGL,确保选中它。

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

include(${VTK_USE_FILE})