[英]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 .
仍然cmake在/usr/local/lib/cmake/vtk-6.0
查找VTK。
這有什么不對?
VTK_DIR是一個緩存變量,它在CMake調用中保持其狀態。 您可以從命令行或通過其中一個CMake GUI界面進行設置。
或者,如果您確定要從CMake文件本身強制它,則可以使用以下語法:
SET(VTK_DIR "/usr/include/vtk-5.8" CACHE PATH "VTK directory override" FORCE)
你應該使用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也應該設置為。
你需要的是帶VTKConfig.cmake
VTK 安裝子目錄 。 或者, 構建目錄也可以工作。
正如彼得所建議的那樣,試試:
SET(VTK_DIR "/usr/include/vtk-5.8/XXX" CACHE PATH "VTK directory override" FORCE)
並將其指向您擁有VTKConfig.cmake
的文件夾。
你可以安裝cmake-qt-gui
- 你可以使用GUI輕松輸入所需的路徑。 如果它不使用您輸入的路徑,則表示這不是它想要的路徑(參見上文)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.