簡體   English   中英

如何在Mac OS X上的C程序中包含hdf5頭文件?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM