错误 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})
我正在尝试 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})