在VTK源码包的Example中,每个模块的例子都有一个CMakeList文件,可之间编译运行。
但VTK版本更新快,模块经常小改,而对于VTK6.x的Example的CMakeLists却没有改动,所以会造成编译错误,如
CMake Error at C:/VTK/CMake/vtkModuleAPI.cmake:120 (message):
Requested modules not available:
vtkRendering
Call Stack (most recent call first):
C:/VTKBuild/VTKConfig.cmake:84 (vtk_module_config)
CMakeLists.txt:11 (find_package)
我们需要进行编译迁移,这里给出了迁移说明。
举个例子
cmake_minimum_required(VERSION 2.8.5 FATAL_ERROR)
if(POLICY CMP0025)
cmake_policy(SET CMP0025 NEW)
endif()
if(POLICY CMP0053)
cmake_policy(SET CMP0053 NEW)
endif()
project (Step3)
find_package(VTK COMPONENTS
vtkFiltersSources
vtkInteractionStyle
vtkRendering${VTK_RENDERING_BACKEND}
)
-------------以上为改动部分(简单起见,直接用NO_MODULE)------------
cmake_minimum_required(VERSION 2.8.7 FATAL_ERROR)
PROJECT (Step3)
find_package(VTK 6.0 NO_MODULE)
include(${VTK_USE_FILE})
add_executable(Cone3 MACOSX_BUNDLE Cone3.cxx)
target_link_libraries(Cone3 ${VTK_LIBRARIES})