CMake:如何设置VTK_DIR
CMake: how to set VTK_DIR?
这是我CMakeLists.txt
set (VTK_DIR "/usr/include/vtk-5.8")
find_package(VTK REQUIRED)
include(${VTK_USE_FILE})
IF(VTK_FOUND)
message("found VTK. Version:" ${VTK_VERSION}. VTK_DIR: ${VTK_DIR})
ELSE(VTK_FOUND)
MESSAGE(FATAL_ERROR
"Cannot build the executable without VTK. Please set the
VTK_DIR")
ENDIF(VTK_FOUND)
cmake .
告诉我:
找到了VTK。版本:6.0.0.VTK_DIR:/usr/local/lib/cmake/vtk-6.0
在命令行中给出VTK_DIR也无济于事:
cmake -DVTK_DIR:PATH=/usr/include/vtk-5.8 .
对于VTK来说,仍然/usr/local/lib/cmake/vtk-6.0
cmake看起来。
这是怎么回事?
VTK_DIR是一个缓存变量,它在 CMake 调用期间保持其状态。 您可以从命令行或通过其中一个 CMake GUI 界面进行设置。
或者,如果您确定要从 CMake 文件本身强制使用它,则可以使用以下语法:
SET(VTK_DIR "/usr/include/vtk-5.8" CACHE PATH "VTK directory override" FORCE)
您需要的是带有VTKConfig.cmake
的VTK安装子目录。或者,构建目录也可能有效。
正如彼得所建议的,请尝试:
SET(VTK_DIR "/usr/include/vtk-5.8/XXX" CACHE PATH "VTK directory override" FORCE)
并将其指向您VTKConfig.cmake
的文件夹。
您可以安装 cmake-qt-gui
- 在那里您可以使用 GUI 轻松输入所需的路径。如果它不使用您输入的路径,则意味着这不是它想要的路径(见上文)。
你应该用NO_MODULE选项调用find_package,
find_package(VTK REQUIRED NO_MODULE)
这将强制 CMake 跳过查找模块,许多版本都不需要该模块。您还需要将 CMake 指向 VTKConfig.cmake 文件的位置,而不是C++标头。例如,将CMAKE_PREFIX_PATH设置为/usr/local 会让 CMake 在任何其他路径之前检查/usr/local。如果您的 VTKConfig.cmake 安装在/usr 前缀中,则配置文件很可能在/usr/lib/cmake/vtk-5.8 中,并且VTK_DIR也应设置为该前缀。
相关文章:
- Qt VTK交互风格的信号到小部件
- 在UNIX系统中使用DIR查找文件的字节大小
- 如何禁用VTK的热键
- QVTKWidget在VTK 8.1中已弃用,并将在未来的版本中删除
- 如何在 vtk Poly 数据上进行布尔运算?
- VTK 图像数据,访问数组中的 1 个图像
- 如何设置vtk相机的正确变焦系数?
- 为<vtkDataArray> VTK 非结构化网格声明 vtkSmartPointer 类型的变量时出现问题
- 在 VTK 8.2.0 中序列化 vtkUnstructuredGrid
- 如何使用 Makefile 使用 VTK 库编译项目?
- CMake 错误,在构建 VTK 'INSTALL'项目
- 在 Windows 10 下为 VTK 生成 Makefile 时,Qt mkspecs 的路径错误
- 将误差线添加到 VTK 二维散点图
- 如何访问 VTK 的类枚举字段
- 无法在 vtk 中重新着色边缘
- 停止 VTK 计时器回调
- VTK 7.1.1: vtkX3DExporter exception
- Vtk Qt场景与>50(移动)演员
- 将当前多边形数据单元与下一个多边形单元格 - VTK 进行比较
- 如何告诉VTK管道使用通过TimerEvent更新的新vtkPolyData?