这是我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 .
仍然cmake在/usr/local/lib/cmake/vtk-6.0
寻找VTK。
这里有什么问题?
答案 0 :(得分:2)
VTK_DIR是一个缓存变量,它在CMake调用中保持其状态。您可以从命令行或通过其中一个CMake GUI界面进行设置。
或者,如果您确定要从CMake文件本身强制它,可以使用以下语法:
SET(VTK_DIR "/usr/include/vtk-5.8" CACHE PATH "VTK directory override" FORCE)
答案 1 :(得分:0)
您应该使用NO_MODULE选项
调用find_packagefind_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也应该设置为。
答案 2 :(得分:0)
您需要的是带有VTKConfig.cmake
的VTK 安装子目录。或者,构建目录也可以正常工作。
正如彼得所建议的,试试:
SET(VTK_DIR "/usr/include/vtk-5.8/XXX" CACHE PATH "VTK directory override" FORCE)
并将其指向您拥有VTKConfig.cmake
的文件夹。
你可以安装cmake-qt-gui
- 你可以使用GUI轻松输入所需的路径。如果它没有使用您输入的路径,则表示不它想要的路径(见上文)。