最近在使用vtk和cuda做大规模图像处理方面的问题研究,在编译vtk的过程中发现第三方库hdf5不能够解决I64长度的探测识别问题。为了节约大家的时间,现在把我经过实践得到的解决方案共享出来,这里要特别Ben Boeckel提出感谢。
基本环境:vtk6.2.0;Windows10 Enterprise 64bit;Visual Studio 2015 Enterprise Edition;cmake 3.3.0(VS2015 Win64)
问题描述:
主要是在hdf5检查合适的64位长度时,依次发现l64、l、L、q等均遭遇失败,此时会抛出错误。
解决方案:
重点参考:
- https://cmake.org/Bug/view.php?id=15776
- https://gitlab.kitware.com/vtk/vtk/commit/718941125d967015e366172dd09793268f4c9eb5
- https://gitlab.kitware.com/vtk/vtk/commit/a4cf06de481eb2a354d10e7874928200be65c400
修改如下的两个文件:
ThirdParty/hdf5/vtkhdf5/config/cmake/HDF5Tests.c
ThirdParty/hdf5/vtkhdf5/config/cmake/ConfigureChecks.cmake
修改后,重新使用cmake进行configure,发现问题已经得到解决: