[英]How to include hdf5 header files in a C program on Mac OS X?
我正在嘗試學習如何在C中編程,我希望能夠從.hdf文件將數據導入到我的C程序中。
我正在使用2009年中期MacBook Pro和Mac OS X Lion。
我想我遇到了問題,因為我不知道我的系統在哪里放置與hdd相關的所有頭文件(記住,我有點像菜鳥)。 所以我剛剛從hdd網站下載了hdf5-1.8.9-freebsd-shared文件夾,並手動將所有.h文件從/include
子目錄拖到我的計算機上的/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
雖然確切的錯誤取決於我正在嘗試編譯的確切代碼。 這是在我嘗試編譯示例程序時生成的。
有沒有人有使用hdf5在Mac OS X中使用C的經驗? 我發現這一切都非常令人困惑。
順便說一句,我通常使用python,經常使用h5py而不會遇到麻煩。
對於非標准位置,使用-l<library-name>
和-L<library-dir>
時,必須告知鏈接器。
如果你在/usr/local/hdf5
安裝了hdf5,你需要這樣的東西:
gcc -o h5ex_d_rdwr h5ex_d_rdwr.c -I/usr/local/hdf5/include -L/usr/local/hdf5/lib -lhdf5
如果您使用的是高級API,請添加-lhdf5_hl
。
如果你安裝了pkg-config
並且知道你的hdf5安裝,你可以讓它為你做:
gcc -o h5ex_d_rdwr h5ex_d_rdwr.c `pkg-config hdf5 --cflags --libs`
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.