如何正确的将HDF5加入到项目中进行编译(雾)?!

1 什么是HDF5

官方解释:

HDF5 is a unique technology suite that makes possible the management of extremely large and complex data collections.

看起来HDF5就是一种用来存储各种数据的一个容器/管理者。

2 为什么要弄这个组件到项目中去?

鉴于很多模型都使用这个格式进行数据存储,所以在测试项目是难免会用到HDF5这个部分。所以这里对其加入到项目中做了以下总结。

3 将HDF5加入到项目需要那几步?可能会遇到什么问题了?

大体上可以总结为三个部分:

(1)下载合适的部分

  这个当然难不到聪明的你了,放一个链接:https://support.hdfgroup.org/HDF5/release/obtain518.html

选择 Windows 64-bit (No SZIP)   [1]   Compilers:   CMake VS 2013 C, C++, IVF 15

  or (https://support.hdfgroup.org/HDF5/release/obtain5.html)

  注意:这里选择了x64版本

(2)添加到项目中

Add the header path to the "Include Directories" setting.

  eg:C:\Program Files\HDF_Group\HDF5\1.8.18\include

Add the library path to the "Library Directories" setting.

  eg:C:\Program Files\HDF_Group\HDF5\1.8.18\lib

  添加头文件和库文件到C++目录中去,

  添加HDF5的bin文件到环境path中: eg:C:\Program Files\HDF_Group\HDF5\1.8.18\bin

Select Linker->Input and beginning with the
"Additional Dependencies" line, enter the library names. The
external libraries should be listed first, followed by the HDF5
library, and then optionally the HDF5 High Level, Fortran or C++
libraries. For example, to compile a C++ application, enter:

  szip.lib zlib.lib hdf5.lib hdf5_cpp.lib

  添加合适的lib进行编译

  由于我选择了 NoSZIP的版本,结果就是  

zlib.lib hdf5.lib hdf5_cpp.lib

(3)编译

  进行了上述的操作了就完成了99%,为什么?

  接下来就会遇到 error LNK2001: 无法解析的外部符号 _H5T_NATIVE_DOUBLE_g

  这样的问题,所以bing搜索找到了解决方案(伪):

  《1》http://www.cnblogs.com/yeahgis/p/3141441.html

  《2》http://www.xuebuyuan.com/1267127.html

  but these solutions don‘t work. why?

  很是疑惑的我想着官方网站能不能给我一些提示:https://support.hdfgroup.org/HDF5/release/obtain518.html

  下面有一个行字比较醒目:To use the shared libraries on Windows with Visual Studio you must specify the H5_BUILT_AS_DYNAMIC_LIB compile definition.

  是的将H5_BUILT_AS_DYNAMIC_LIB加入到编译器预编译选项,就解决了上面了问题。

  

文章参考:

1. http://www.cnblogs.com/nwpuxuezha/p/4655014.html

2. http://www.cnblogs.com/yeahgis/p/3141441.html

3. http://www.xuebuyuan.com/1267127.html

4. https://support.hdfgroup.org/HDF5/release/obtain518.html

5. https://support.hdfgroup.org/HDF5/release/obtain5.html

时间: 2024-10-23 09:12:43

如何正确的将HDF5加入到项目中进行编译(雾)?!的相关文章

Maven项目中,编译proto文件成Java类

新建Maven项目 新建一个 Maven 项目: pom定义了最小的maven2元素,即:groupId,artifactId,version. groupId:项目或者组织的唯一标志,并且配置时生成的路径也是由此生成,如org.codehaus.mojo生成的相对路径为:/org/codehaus/mojo artifactId: 项目的通用名称 version:项目的版本 packaging: 打包的机制,如pom, jar, maven-plugin, ejb, war, ear, rar

idea 项目中 maven 编译出错Fatal error compiling: 无效的目标发行版: 1.8 -> [Help 1] 解决方法

首先,pom文件中配置了编译版本为1.8,但报错 解决办法: 首先在File-->settings中进行如下配置 然后,File-->Project structure中进行如下设置 再运行就不报错了 原文地址:https://www.cnblogs.com/shenzhenhuaya/p/15226181250_shenzhenhua025.html

在android中,编译的项目使用到第三方jar的导入方法 终极版!

1,在android系统环境中编译自己的项目时,往往会用到第三方jar包.这些jar包在eclipse中添加编译,一路畅通,因为eclipse已经帮助你配置好了.但是当把这个项目拷贝到系统环境中编译时,jar包就会不管用.下面是自己遇到的问题,通过查找网上的资料,遇到各种问题,最后终于解决.通过博客总结一下,给大家分享. 条件:例如:先在eclipse中开发的应用,用到support-v4包和第三方pinyin4j-2.5.0.jar. 移植到系统项目中,编译不通过.以系统的music应用为例.

对非正确使用浮点型数据而导致项目BUG的问题探讨

乘法分配律 在上小学的时候就已经学习过乘法分配律,乘法分配律的具体内容是:两个数的和与一个数相乘,可以先把他们分别与这个数相乘,再相加,得数不变.乘法分配律的定义还可以用表达式"(a+b)×c = a×c+b×c"的形式给出.乘法分配律的反用"a×c+b×c = (a+b)×c"同样成立.例如"10.2×(3+7) = 10.2×3+10.2×7 = 102"(反用形式为"10.2×3+10.2×7 = 10.2×(3+7) = 102

iOS项目中如何正确引入Html5文件(html/js/css)

iOS项目中使用项目中的html js css 文件时,有时会遇到引用路径出错的问题,导致html js css image文件无法加载的情况. 那么,引入H5相关文件的正确操作方式如下,这样就不会出现资源文件无法引入并正常使用的情况: 1 在项目目录下创建存放Html5文件文件夹:H5 2 将文件夹H5拖放至项目中对应的位置,此处注意要选择:Create groups 3 将各种Html5文件(html js css image等)拖放到H5文件夹中,此处注意选择:Create folder

如何正确合理的设计一个接口项目

时间:2013-10-08 11:43 来源:wangpeng047 作者:wangpeng047 首先,我这里说明接口,不是代码里的接口,而是接口项目,如果想错了就不用往下看了. 在手机广泛流行的今天,手机应用也随之越来越多,而且成长的速度也非常快.手机应用软件开发实现方式同普通PC软件一样,也分为BS和CS方式.而采用CS方式,在服务器端大多采用接口的形式提供数据交互(主流数据交互方式有:Json.WebService等),今天要说的就是如何设计接口. 接口作为连通客户端与数据库进行数据流通

如何正确的在项目中接入微信JS-SDK

微信JS-SDK的功能 如果你点进来,那么我相信你应该知道微信的JS-SDK可以用来做什么了.微信的官方文档描述如下. 微信JS-SDK是微信公众平台面向网页开发者提供的基于微信内的网页开发工具包. 通过使用微信JS-SDK,网页开发者可借助微信高效地使用拍照.选图.语音.位置等手机系统的能力,同时可以直接使用微信分享.扫一扫等微信特有的能力,为微信用户提供更优质的网页体验. 通过使用微信的JS-SDK,你可以让你网页在微信内调用拍照.语音.支付.位置.扫一扫这些只能在微信内使用的功能.进过下面

项目中 SimpleDateFormat 的正确使用

项目中 SimpleDateFormat 的正确使用 日常开发中,我们经常需要使用时间相关类,说到时间相关类,想必大家对 SimpleDateFormat 并不陌生.主要是用它进行时间的格式化输出和解析,挺方便快捷的,但是 SimpleDateFormat 并不是一个线程安全 的类.在多线程情况下,会出现异常,想必有经验的小伙伴也遇到过.下面我们就来分析分析SimpleDateFormat为什么不安全?是怎么引发的?以及多线程下有那些SimpleDateFormat的解决方案? 先看看<阿里巴巴

在vue项目中封装echarts的正确姿势

为什么需要封装echarts 每个开发者在制作图表时都需要从头到尾书写一遍完整的option配置,十分冗余 在同一个项目中,各类图表设计十分相似,甚至是相同,没必要一直做重复工作 可能有一些开发者忘记考虑echarts更新数据的特性,以及窗口缩放时的适应问题.这样导致数据更新了echarts视图却没有更新,窗口缩放引起echarts图形变形问题 我希望这个echarts组件能设计成什么样 业务数据和样式配置数据分离,我只需要传入业务数据就行了 它的大小要完全由使用者决定 不会因为缩放出现变形问题