前言

  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打开工程进行安装

  

 

安装文件布局

  
  完成编译。

Hdf5开发笔记(一):hdf5介绍,在windows上编译msvc2015x64版本的更多相关文章

  1. Qt+MPlayer音乐播放器开发笔记(一):ubuntu上编译MPlayer以及Demo演示

    前言   在ubuntu上实现MPlayer播放器播放音乐.   Demo                Mplayer   MPlayer是一款开源多媒体播放器,以GNU通用公共许可证发布.此款软件 ...

  2. Typescript 学习笔记一:介绍、安装、编译

    前言 整理了一下 Typescript 的学习笔记,方便后期遗忘某个知识点的时候,快速回忆. 为了避免凌乱,用 gitbook 结合 marketdown 整理的. github地址是:ts-gitb ...

  3. 在Mac/Linux/Windows上编译corefx遇到的问题及解决方法

    这两天尝试在Mac/Linux/Windows三大平台上编译.NET跨平台三驾马车(coreclr/corefx/dnx)之一的corefx(.NET Core Framework),结果三个平台的编 ...

  4. [ZZ] 在windows上编译Mesa3d opengl32库

    在windows上编译Mesa3d opengl32库 cheungmine http://blog.csdn.net/ubuntu64fan/article/details/8061475 Mesa ...

  5. 利用openssl管理证书及SSL编程第2部分:在Windows上编译 openssl

    利用openssl管理证书及SSL编程第2部分:在Windows上编译 openssl 首先mingw的环境搭建,务必遵循下文: http://blog.csdn.net/ubuntu64fan/ar ...

  6. 在windows上编译wireshark源代码

    终于在windows上成功编译了wireshark源代码,个中酸辛,都是泪..只能说要多试! windows上编译wireshark共用到三个东西:wireshark源代码.python.cygwin ...

  7. 在windows 上编译部署Rap2

    在windows 上编译部署Rap2 引言 安装需要的环境 安装后端站点 创建数据库 在全局安装pm2 和 typescript 配置mysql,redis 数据库链接配置 初始化 编译 初始化数据库 ...

  8. Qt开发笔记:OpenSSL库介绍、windows上mingw32版本的OpenSSL编译模块化

    前言   Windows上mingw32版本的openssl的编译是属于比较棘手的,OpenSSL本身不提供支持..   OpenSSL 介绍   OpenSSL是一个开放源代码的软件库包,应用程序可 ...

  9. FFmpeg开发笔记(二)搭建Windows系统的开发环境

    由于Linux系统比较专业,个人电脑很少安装Linux,反而大都安装Windows系统,因此提高了FFmpeg的学习门槛,毕竟在Windows系统搭建FFmpeg的开发环境还是比较麻烦的.不过若有已经 ...

  10. Hi3516开发笔记(四):Hi3516虚拟机编译uboot、kernel、roofts和userdata以及分区表

    若该文为原创文章,转载请注明原文出处本文章博客地址:https://hpzwl.blog.csdn.net/article/details/121572767红胖子(红模仿)的博文大全:开发技术集合( ...

随机推荐

  1. [转帖]【rpm】源码包制作rpm包|修改rpm、重新制作rpm包

    目录 前言 安装rpmbuild rpmbuild制作rpm 包 同时生成devel包 阻止rpmbuid打包时strip程序/库 修改rpm.重新制作rpm包 RPM 打包 工具 SPEC文件 sp ...

  2. 【转帖】15.JVM栈帧的内部结构

    目录 1.栈中存储的是什么? 2.栈的运行原理 1.栈中存储的是什么? 1.每个线程都有自己的栈,栈中存储的是栈帧. 2.在这个线程上正在执行的每个方法都各自对应一个栈帧.方法与栈帧是一对一的关系. ...

  3. [转帖]vs调试运行程序出现:“由于找不到MSVCP140D.dll,无法继续执行代码 ”的解决方法

    碎碎念 最近在使用Visual studio调试程序的时候,突然冒出了"由于找不到MSVCP140D.dll,无法继续执行代码.重新安装程序可能会解决次问题."的错误.如下图所示. ...

  4. OpenEuler2203使用rpm方式安装Oracle19c的过程

    OpenEuler2203使用rpm方式安装Oracle19c的过程 安装介质 oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm oracle-d ...

  5. linux中如何统计千万个文件总和

    很简单.很简单.很简单.重要事情说三遍 命令:ls | grep '匹配信息' | wc -l ls查看该目录下的所有文件,果然隐藏文件也要匹配上的话,需要:ls -a grep匹配,如查看文件中有. ...

  6. vue和uni-app不同的类型绑定不同的类名

    vue不同的类型绑定不同的类名 第一种 <div v-for="(item, index) in list" :key="index" > < ...

  7. 深入学习C#系列文章01---C#3 革新写代码的新方式

    C#3 几乎所有的新特性都是为LINQ服务的,但他们单独使用也非常有用,接下来我们来简单看看C#3 的几个新特性吧. 一.自动实现的属性-----编写由字段直接支持的简单属性,不再显得臃肿不堪. 之前 ...

  8. 微信小程序网页嵌入开发

    无脑开发 下载微信开发者工具 新建一个项目找到index开头的进去全选删除粘贴下面代码 <!-- html --> <!-- 指向嵌入外部链接的地址 --> <web-v ...

  9. Mysql 为现有数据生成Guid

    GUID 全局唯一标识符(GUID,Globally Unique Identifier)是一种由算法生成的二进制长度为128位的数字标识符.GUID主要用于在拥有多个节点.多台计算机的网络或系统中. ...

  10. 从零开始配置 vim(18)——终端模式

    在进入下一个配置之前,先了解一下如何在 neovim 中使用它内置的终端. 我们之前说过在命令模式中可以使用 !来执行shell命令.但是终归来说,执行和使用上不是那么方便,特别是混合使用 vim 命 ...