1. 程式人生 > 其它 >Hdf5開發筆記(一):hdf5介紹,在windows上編譯msvc2015x64版本

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開啟工程進行安裝

  

安裝檔案佈局

  
  完成編譯。