zoukankan      html  css  js  c++  java
  • Hdf5开发笔记(一):hdf5介绍,在windows上编译msvc2015x64版本

    前言

      matlab的matio库需要使用到hdf5,编译hdf5的msvc2015x64版本。

    HDF5介绍

      HDF(Hierarchical Data Format)是一种设计用于存储和组织大量数据的文件格式,最开始由美国国家超算中心研发,后来由一个非盈利组织HDF Group支持.HDF支持多种商业及非商业的软件平台,包括MATLAB、Java、Python、R和Julia等等,现在也提供了Spark.其版本包括了HDF4和现在大量用的HDF5。
      HDF5是用于存储和管理数据的数据模型、库和文件格式。它支持无限多样的数据类型,专为灵活高效的I/O以及高容量和复杂数据而设计。HDF5具有可移植性和可扩展性,允许应用程序在使用HDF5的过程中不断发展。HDF5技术套件包括用于管理、操作、查看和分析HDF5格式数据的工具和应用程序。
      一个HDF5文件可以被看作是一个组(类Unix的文件系统层次结构)包含了各类不同的数据集,数据集可以是图像、表格,甚至是PDF文件和Excel.HDF5中的两大核心就是组结构和数据集。

     

    下载

      官网:https://www.hdfgroup.org
      QQ群:1047134658(点击“文件”搜索“hdf5”,群内与博文同步更新)

     

    编译HD5(msvc2015x64版本)

    步骤一:下载解压

      在这里插入图片描述

    步骤二:CMake配置,解决“CMAKE_C_COMPILE”

      在这里插入图片描述
      报错找不到C编译器,如下图:
      在这里插入图片描述
      打开Visual Studio Installer,修改软件,所有的安装平台sdk只留一个windows版本的sdk,如下图:
       在这里插入图片描述
      修改等待安装完成。
      在这里插入图片描述
      在这里插入图片描述
      弄完后重启,继续:
      在这里插入图片描述
       查看具体原因,打开CMakeOutput.txt文件:
       在这里插入图片描述

       是因为连接不到kernel32.lib,百度找到是:

    Since kernel32.lib is a part of Windows SDK, try installing or reinstalling it.
    

      那么我们尝试卸载所有的windows sdk,然后安装一个,再重启再试,又缺少ucrtd.lib,如下图:
      在这里插入图片描述
      然后把VC++的环境也给加上,就好了(之前也加了,但是没用,装了VS2015然后VS2017估计是冲掉覆盖了,所以本质上是卸载了sdk,卸载了所有的vc++,然后重新安装sdk和vc++依赖库,才好的)
       在这里插入图片描述

    步骤三:CMake配置,解决“perl”

      然后缺少perl,需要安装perl,如下图:
      在这里插入图片描述
      继续编译。

    步骤四:CMake配置,卡N久无法解决

      在这里插入图片描述
      查看错误输出:
      在这里插入图片描述
      目前放弃使用CMake软件的方法编译源码

     

    编译HD5(官方提供命令批处理的)

    步骤一:下载带有cmake版本的

      在这里插入图片描述
      在这里插入图片描述
      在这里插入图片描述

    步骤二:选择VS2015-64.BAT运行并CMake配置

      在这里插入图片描述
      (这个配置之前使用之前编译的版本试过,配置错误,找不到东西,所以直接下这个了)
      在这里插入图片描述
      在这里插入图片描述

      
    在这里插入图片描述

    步骤三:使用VS打开工程进行安装

      在这里插入图片描述

     

    安装文件布局

      在这里插入图片描述
      完成编译。

  • 相关阅读:
    Linux下安装FTP服务(Ubuntu)
    Ubuntu下无法使用Secure_CRT连接服务器
    Mysql 锁机制
    PHP提取HTML代码中img标签下src属性
    Mysql 隐式转换
    PHPExcel在TP下使用
    ThinkPHP同时操作多个数据库
    PHP 时间相关操作
    ThinkPHP输入验证和I方法使用
    ThinkPHP模板内使用U方法
  • 原文地址:https://www.cnblogs.com/qq21497936/p/15507416.html
Copyright © 2011-2022 走看看