HDF5 CMake 生成 C\C++ 可用的 lib 文件和 dll 文件

2023-11-02

一. 原料

  1. HDF5 源码:
    下载地址: https://www.hdfgroup.org/downloads/hdf5/source-code/
    下载对应系统的版本, 我的是 Windows 10, 选择红框标示的版本
    windows zip
  2. CMake:
    下载地址: https://cmake.org/download/
    选择安装版本会方便很多, 我选择的是 Windows win64-x64 Installer
    win64 installer

二. 生成工程文件

  1. 将下载的源码解压放到你喜欢的地方, 我放在了 D 盘
  2. 打开 CMake, 在 Where is the sourece code 栏填源码保存的目录, 在 Where to build the binaries 栏填你的目标目录, 我在源码目录中新建了一个 buid 的目录, 如下图
    path setting
  3. 然后点左下角的 Configure, 会弹出一些需要设置的选项
    configure button
  4. 选择要使用的编译环境, 我选择 Visual Studio 14 2015, 其他默认就好, 然后点 Finish 完成设置, 如果想编译 64 位版本, 则选择 Visual Studio 14 2015 win64, 这样打开工程时默认就是 x64 平台, 否则默认是 win32, 也可以在工程里面切换
    cmake 3.13
    CMake 3.16 的平台类型在第二栏中, 和 3.13 有点不一样
    cmake 3.16
  5. 设置完成后会自动开始生成配置文件
    configure start
  6. 生成完成后如下图, 不要以为看到一片红色就以为不行了, 什么都不用管, 直接点 Generate 按钮生成工程
    configure finish

三. 编译

  1. 生成完成后, Open Project 按钮变成可用状态了, 点它! 就会启动 VS 2015, 并打开生成的工程. 如果你电脑上同时有 VS 2012 和 VS 2015, 那有可能是用 VS2012 打开的, 这里你只需要用 VS 2015 打开刚才生成的工程 (bulid\HDF5.sln) 就可以了
    open project

  2. 等工程打开之后, 生成解决方案, 杀毒软件可能会阻止生成, 比如 360 就会这样, 生成解决方案之前可以暂停保护一阵, 编译完成后如下
    debug finish
    完成后会在目标目录的 bin 目录下看到生成的文件, 我的是 D:\hdf5-1.10.6\build\bin\Debug

  3. Release 版本, 只需切换到 Release 模式下生成就可以了, 同样在 bin 目录下会有 Release 版本的文件
    release finish

三. 下载

如果你没有编译成功, 那就下载我编译好的吧, x86 和 x64 都有

有一点要注意, 源码的 src 文件中少了一个 H5pubconf.h, 这个文件虽然在 build 中可以找到, 但是有问题, 而且没有这个文件的话, 你写的代码在编译时会报找不到文件. 可用的 H5pubconf.h 我一并放到里面的 include 文件夹中了. 还有一点非常重要, \hdf5-1.10.6\src 中的文件是 C 语言版本的 头文件(.h) 和 源文件(.c), 所以如果要使用 C++ 相关的类的话, 就要把 \hdf5-1.10.6\c++\src 中的 头文件(.h)和 源文件(.cpp) 和 C 语言版本的放到一起

这里我就将它们一起放到 include 文件中, 方便使用

下载地址: C\C++ 读写 HDF5 所需头文件和库文件
libs

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

HDF5 CMake 生成 C\C++ 可用的 lib 文件和 dll 文件 的相关文章

  • 在 C# 中创建具有单独列的分隔文本

    我一直在尝试在 C 中创建一个制表符限制的文本文件 以便数据正确显示在单独的列中 Firstname Lastname Age John Smith 17 James Sawyer 31 我尝试过 t 字符 但我得到的只是 Firstnam
  • 如何使用MemoryCache代替Timer来触发一个方法?

    以下方法通过等待已运行操作的结果来处理并发请求 对数据的请求可能会使用相同 不同的凭据同时出现 对于每组唯一的凭据 最多可以有一个GetCurrentInternal呼叫正在进行中 当准备就绪时 该呼叫的结果将返回给所有排队的服务员 pri
  • 推导指南中的引用和值之间的差异

    考虑类型A template
  • 将 System.Windows.Input.KeyEventArgs 键转换为 char

    我需要将事件参数作为char 但是当我尝试转换 Key 枚举时 我得到的字母和符号与传入的字母和符号完全不同 如何正确地将密钥转换为字符 这是我尝试过的 ObserveKeyStroke this new ObervableKeyStrok
  • 用于检查项目文件中的项目变量和引用路径的 api

    我正在研究一个 net application VS2010 与 x 没有 解和变量号这些解决方案中的项目数量 我需要检查项目属性 特定于一定数量的项目 是否同质 并且检查 验证构建期间的参考路径 有没有一个API是这样的吗 如果没有 我该
  • 如何在 C# 中定义文本框数组?

    您好 当我在 Windows 申请表上创建文本框时 我无法将其命名为 box 0 box 1 等 我这样做的目的是因为我想循环使用它们 其实我发现TextBox array firstTextBox secondTextBox 也有效
  • 如何使用 watin 中的 FileUploadDialogHandler 访问文件上传对话框

    我正在使用 IE8 和 watin 并尝试通过我的网页测试上传文件 我不能简单地使用 set 方法设置上传文件 例如 ie FileUpload Find ById someId Set C Desktop image jpg 因为上传文本
  • 如何在 Blackberry Cascades 中显示具有特定号码的电话板

    我正在使用带有 C QT 和 QML 的 Blackberry Cascades 10 Beta 3 SDK 以及 Blackberry 10 Dev Alpha Simulator 和 QNX Momentics IDE 并且我正在尝试实
  • 使用 Moq 使用内部构造函数模拟类型

    我正在尝试模拟 Microsoft Sync Framework 中的一个类 它只有一个内部构造函数 当我尝试以下操作时 var fullEnumerationContextMock new Mock
  • 如何使用 Mongodb C# 驱动程序连接多个集合

    我需要将 3 个集合与多个集合合并在一起 lookup我在 C 驱动程序中尝试过 它允许我 lookup用户采集但无法执行秒 lookup用于设置集合 有人可以帮忙吗 db Transactions aggregate lookup fro
  • 将 log4net 与 Autofac 结合使用

    我正在尝试将 log4net 与 Autofac 一起使用 我粘贴了这段代码http autofac readthedocs org en latest examples log4net html http autofac readthed
  • std::async 与重载函数

    可能的重复 std bind 重载解析 https stackoverflow com questions 4159487 stdbind overload resolution 考虑以下 C 示例 class A public int f
  • 如何从main方法调用业务对象类?

    我已将代码分为业务对象 访问层 如下所示 void Main Business object public class ExpenseBO public void MakeExpense ExpensePayload payload var
  • 如何对 Web Api 操作进行后调用?

    我创建了一个 Web API 操作 如下所示 HttpPost public void Load string siteName string providerName UserDetails userDetails implementat
  • (de)从 CSV 序列化为对象(或者最好是类型对象的列表)

    我是一名 C 程序员 试图学习 C 似乎有一些内置的对象序列化 但我在这里有点不知所措 我被要求将测试数据从 CSV 文件加载到对象集合中 CSV 比 xml 更受青睐 因为它更简单且更易于人类阅读 我们正在创建测试数据来运行单元测试 该集
  • 线程和 fork()。我该如何处理呢? [复制]

    这个问题在这里已经有答案了 可能的重复 多线程程序中的fork https stackoverflow com questions 1235516 fork in multi threaded program 如果我有一个使用 fork 的
  • 英特尔 Pin 与 C++14

    问题 我有一些关于在 C 14 或其他 C 版本中使用英特尔 Pin 的问题 使用较新版本从较旧的 C 编译代码很少会出现任何问题 但由于 Intel Pin 是操作指令级别的 如果我使用 C 11 或 C 14 编译它 是否会出现任何不良
  • memset 未填充数组

    u32 iterations 5 u32 ecx u32 malloc sizeof u32 iterations memset ecx 0xBAADF00D sizeof u32 iterations printf 8X n ecx 0
  • Linq-to-entities,在一个查询中获取结果+行数

    我已经看到了有关此事的多个问题 但它们已经有 2 年 或更长 的历史了 所以我想知道这方面是否有任何变化 基本思想是填充网格视图并创建自定义分页 所以 我还需要结果和行数 在 SQL 中 这将类似于 SELECT COUNT id Id N
  • 防止在工厂方法之外实例化对象

    假设我有一个带有工厂方法的类 class A public static A newA Some code logging return new A 是否可以使用 a 来阻止此类对象的实例化new 那么工厂方法是创建对象实例的唯一方法吗 当

随机推荐

  • linux git代码明明是最新版本的,status为啥全是modified?

    解决办法 依次执行以下两句代码 git rm cached r git reset hard
  • 使用 PyTorch 对自定义数据集进行二分类(基于Vision Transformer)

    内容 简短描述 ViT 的简短描述 编码部分 使用 ViT 对自定义数据集进行二分类 附录 ViT hypermeters 解释 简短描述 视觉转换器是深度学习领域中流行的转换器之一 在视觉转换器出现之前 我们不得不在计算机视觉中使用卷积神
  • 【Python】turtle海龟画图练习

    Turtle 方法查看 turtle 海龟绘图 同心圆 import turtle i 1 r 0 while i lt 6 r 30 自己设 turtle circle r 画个圆 turtle penup 起笔 turtle sety
  • 前后端RSA加解密

    前端vue RSA加密 一 安装 npm install jsencrypt save dev 二 创建js文件 在src目录下创建util文件夹 然后在util文件夹下创建 security js 文件 1 引入jsencrypt 引入加
  • Java数据类型转换

    1 基本数据类型 byte short char int long float double boolean 2 引用类型数据 String 枚举 数组 接口 枚举 3 基本数据和引用类型数据的区别 1 基本数据类型变量 存的是值的本身 2
  • APP从苹果开发者A账号转移到B账号的流程

    今天把公司的一个APP从苹果开发者A账号转移到B账号 在这里记录具体操作流程 准备好开发者账号A APP所在的原账号 开发者账号B APP迁移目标账号 登录A账号 选择 App Store Connect 点击 Go to App Stor
  • Linux相关关机命令及服务器关机后如何进行开机操作

    linux一般用在服务器上 很少遇到关机的情况 毕竟关机服务就会中断 除非特殊情况不得已才会关闭 正确的关机流程 sync gt shutdown或reboot或halt 无论重启还是关机 都需要先sync将内存数据同步到硬盘中 避免数据丢
  • 抽象数据类型Polynomial 的实现(第二章 P40-43 算法2.22,2.23)

    抽象数据类型Polynomial 的实现 多项式的加法 乘法 typedef int Status Status是函数的类型 其值是函数结果状态代码 如OK等 typedef int Boolean Boolean是布尔类型 其值是TRUE
  • vue关于json数据格式的展示<pre>标签的使用

    起因 需要把字符串按json格式展示到页面上 直接展示或者利用JSON parse 展示页面上数据都会挤成一坨 解决方法 利用
  • 重构——在对象之间搬移特性(1)

    我们都知道 类往往因为承担过多的责任而变得臃肿不堪 这种情况下 一般会使用 提炼类 这种手法将一部分责任分离出去 如果一个类变得 不负责任 一般会使用 内联类 这种手法将它融入另一个类 如果一个类使用了另一个类 一般会运用 隐藏委托关系 手
  • Fast DDS入门六、Fast DDS的动态类型及示例程序

    上一节 Fast DDS入门五 在Windows平台创建一个简单的FastDDS示例程序 该示例程序介绍了采用Fast DDS Gen工具通过接口定义语言 IDL 来生成数据结构类 该数据结构类具备序列化反序列化处理 用户只需要关注编写ID
  • java linkedhashmap list_java – 将所有键从LinkedHashMap提取到列表的方法

    我正在使用许多LinkedHashMap 它们是LinkedHashMap lt Long Long gt LinkedHashMap lt Long Double gt 或LinkedHashMap lt Long Integer gt
  • SGI STL一级二级空间配置器代码剖析笔记

    STL不仅是一个可复用组件库 而且是一个包罗算法与数据结构的软件框架 说到框架本身就有庞大 稳定 完整而可扩展的含义 因此学习STL源码不仅可以帮助我们编写良好代码的习惯 而且能够让我们熟悉算法 数据结构 我们也会受到这种编程思维影响 在编
  • AliOS-Things引入

    目录 一 简介 1 1 硬件抽象层 1 2 AliOS Things内核 rhino 编辑 1 3 AliOS Things组件 二 如何进行AliOS Things开发 三 安装环境 安装python pip git 修改pip镜像源 安
  • Python——实验四

    Python 实验四 一 数字出现次数排序 问题描述 给定n个整数 请统计出每个整数出现的次数 按出现次数从多到少的顺序输出 输入形式 第一行包含一个整数n 表示给定数字的个数 第二行包含n个整数 相邻的整数之间用一个空格分隔 表示所给定的
  • Python爬虫三:正则表达式的使用大全

    1 正则表达式的简介 1 1概念 正则表达式是对字符串操作的一种逻辑公式 就是用事先定义好的一些特定字符 及这些特定字符的组合 组成一个 规则字符串 这个 规则字符串 用来表达对字符串的一种过滤逻辑简而言之就是数据筛选过滤 1 2应用场景
  • python实现Flask GET Demo

    python代码 from flask import Flask request jsonify app Flask name 用 data路径路由 app route data def get data 以下一行是从URL中获取参数的ge
  • abb机器人指令手册_ABB机器人自定义错误处理

    更多内容请点击上方 ABB机器人实战技巧 关注 也可点击公众号下方 往期经典 浏览更多内容 转载请先后台留言 大家一起支持原创 推动机器人使用和发展 本公众号对各类ABB机器人应用 仿真 毕业设计提供技术支持 详细后台留言 本公众号诚挚希望
  • 【SQL】Spark HiveSQL常见报错

    无权限更新 Authorization failed No privilege Update found for outputs 库或表对象不存在 com microsoft sqlserver jdbc SQLServerExceptio
  • HDF5 CMake 生成 C\C++ 可用的 lib 文件和 dll 文件

    一 原料 HDF5 源码 下载地址 https www hdfgroup org downloads hdf5 source code 下载对应系统的版本 我的是 Windows 10 选择红框标示的版本 CMake 下载地址 https