做者:朱金灿框架
来源:http://blog.csdn.net/clever101学习
由于最近要研究并行I/O,听说hdf5文件格式能够支持并行I/O,深度学习框架Caffe用的是hdf格式,因此决定把hdf5库的源码编译一下。测试
首先得安装MPI的开发环境mpich2-1.2.1p1-win-ia32.msi(配套VS2008),而后到hdf5-1.10.0-patch1下载hdf5的最新源码,而后使用CMake生成VS工程文件,须要注意的是CMake设置的编译选项默认是不支持并行的,所以须要把HDF5_ENABLE_PARALLEL这个选项选上,同时HDF5_ENABLE_PARALLEL这个编译选项和HDF5_BUILD_CPP_LIB是互相冲突的,所以不能编译为C++库,只能编译为C库,也就是说hdf5的C++库不支持并行I/O,hdf5的C库才支持并行I/O,具体以下图:spa
这样能够生成一个叫HDF5.sln的解决方案文件,里面的工程不少,通常只须要编译hdf5-shared和hdf5-static两个工程便可,具体以下图:.net
编译好了hdf5库后,接下来测试使用只须要包含hdf5.h和连接对应的库文件件便可。须要注意的是使用hdf5的动态库须要增长一个预处理器:H5_BUILT_AS_DYNAMIC_LIB,在hdf5的官网上就有这样一句提示:blog
To use the shared libraries on Windows with Visual Studio you must specify the H5_BUILT_AS_DYNAMIC_LIB compile definition.ip
hdf5-1.10.0-patch1的源码及对应的VS2008解决方案已上传至CSDN:支持MPI的hdf5最新源码工程。ci