我想學習如何在C程序,我想能夠從.hdf文件導入數據到我的C程序。如何在Mac OS X上的C程序中包含hdf5頭文件?
我正在使用Mac OS X獅子2009年中期的MacBook Pro。
我想我有問題,因爲我不知道我的系統上的所有頭文件與hdd相關聯(請記住,我有點小菜鳥)。所以我剛剛從hdd網站上下載了hdf5-1.8.9-freebsd-shared文件夾,並手動將/include
子目錄中的所有.h文件拖到我的電腦上的/usr/include
目錄中。
當我嘗試使用正常的gcc終端命令編譯我的.c程序時,我得到一個錯誤,這是一個錯誤(對格式化抱歉,但我認爲確切的錯誤無論如何不重要):
Undefined symbols for architecture x86_64:
"_H5check_version", referenced from:
_main in cc9FVO6S.o
"_H5Fcreate", referenced from:
_main in cc9FVO6S.o
"_H5Screate_simple", referenced from:
_main in cc9FVO6S.o
"_H5open", referenced from:
_main in cc9FVO6S.o
"_H5T_STD_I32LE_g", referenced from:
_main in cc9FVO6S.o
"_H5Dcreate2", referenced from:
_main in cc9FVO6S.o
"_H5T_NATIVE_INT_g", referenced from:
_main in cc9FVO6S.o
"_H5Dwrite", referenced from:
_main in cc9FVO6S.o
"_H5Dclose", referenced from:
_main in cc9FVO6S.o
"_H5Sclose", referenced from:
_main in cc9FVO6S.o
"_H5Fclose", referenced from:
_main in cc9FVO6S.o
"_H5Fopen", referenced from:
_main in cc9FVO6S.o
"_H5Dopen2", referenced from:
_main in cc9FVO6S.o
"_H5Dread", referenced from:
_main in cc9FVO6S.o
ld: symbol(s) not found for architecture x86_64
collect2: ld returned 1 exit status
雖然確切的錯誤取決於我試圖編譯的代碼。這是我在編譯sample program時產生的。
有沒有人有任何經驗讓hdf5在Mac OS X中的C工作?我發現這一切都很混亂。
順便說一句,我通常使用python,並經常使用h5py沒有麻煩。
這似乎是一個比較隨意的猜測,該庫的FreeBSD版本適用於OSX。找到一個OSX版本,或自己編譯一個。除了包含頭文件之外,還需要鏈接到hdf5庫,這裏的錯誤消息說明你沒有 – nos