C 为什么在执行HDF5示例代码期间出现libhdf5_hl not loaded错误?
我正在尝试执行c程序来执行HDF5基本代码。就在下面C 为什么在执行HDF5示例代码期间出现libhdf5_hl not loaded错误?,c,hdf5,C,Hdf5,我正在尝试执行c程序来执行HDF5基本代码。就在下面 /* * This example illustrates how to create a dataset that is a 4 x 6 * array. It is used in the HDF5 Tutorial. */ #include "hdf5.h" #define FILE "dset.h5" int main() { hid_t file_id, dataset_id, dataspace
/*
* This example illustrates how to create a dataset that is a 4 x 6
* array. It is used in the HDF5 Tutorial.
*/
#include "hdf5.h"
#define FILE "dset.h5"
int main() {
hid_t file_id, dataset_id, dataspace_id; /* identifiers */
hsize_t dims[2];
herr_t status;
/* Create a new file using default properties. */
file_id = H5Fcreate(FILE, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT);
/* Create the data space for the dataset. */
dims[0] = 4;
dims[1] = 6;
dataspace_id = H5Screate_simple(2, dims, NULL);
/* Create the dataset. */
dataset_id = H5Dcreate2(file_id, "/dset", H5T_STD_I32BE, dataspace_id,
H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT);
/* End access to the dataset and release resources used by it. */
status = H5Dclose(dataset_id);
/* Terminate access to the data space. */
status = H5Sclose(dataspace_id);
/* Close the file. */
status = H5Fclose(file_id);
}
我没有得到任何编译时错误,但运行时错误说它无法加载一些库。错误粘贴在下面-
19:36:27 macOS_ ⚡ h5cc -show myprog.c
clang -arch x86_64 myprog.c -L/Users/Ajay/anaconda/lib -lhdf5_hl -lhdf5 -arch x86_64 -lpthread -lz -ldl -lm
19:36:33 macOS_ ⚡ ./a.out
dyld: Library not loaded: @rpath/libhdf5_hl.10.dylib
Referenced from: /Users/Ajay/opensource/HDF5-Examples/./a.out
Reason: image not found
Abort trap: 6
19:36:35 macOS_ ⚡
19:36:27马科斯尤⚡ h5cc-显示myprog.c
clang-arch x86_64 myprog.c-L/Users/Ajay/anaconda/lib-lhdf5_hl-lhdf5-arch x86_64-lpthread-lz-ldl-lm
19:36:33马科斯尤⚡ ./a、 出去
dyld:未加载库:@rpath/libhdf5_hl.10.dylib
引用自:/Users/Ajay/opensource/HDF5 Examples//a.out
原因:找不到图像
中止陷阱:6
19:36:35马科斯尤⚡
有关配置的更多信息-
09:11:59 macOS_ ⚡ h5cc -showconfig
SUMMARY OF THE HDF5 CONFIGURATION
=================================
General Information:
-------------------
HDF5 Version: 1.8.17
Configured on: Tue Aug 2 08:44:51 BST 2016
Configured by: ray@rays-Mac.local
Configure mode: production
Host system: i386-apple-darwin11.4.2
Uname information: Darwin rays-Mac.local 11.4.2 Darwin Kernel Version 11.4.2: Thu Aug 23 16:25:48 PDT 2012; root:xnu-1699.32.7~1/RELEASE_X86_64 x86_64
Byte sex: little-endian
Libraries: shared
Installation point: /Users/Ajay/anaconda
Compiling Options:
------------------
Compilation Mode: production
C Compiler: /usr/bin/clang ( Apple LLVM version 4.2 )
CFLAGS: -arch x86_64
H5_CFLAGS: -O3
AM_CFLAGS:
CPPFLAGS:
H5_CPPFLAGS: -DNDEBUG -UH5_DEBUG_API
AM_CPPFLAGS:
Shared C Library: yes
Static C Library: no
Statically Linked Executables: no
LDFLAGS: -arch x86_64
H5_LDFLAGS:
AM_LDFLAGS:
Extra libraries: -lpthread -lz -ldl -lm
Archiver: ar
Ranlib: ranlib
Debugged Packages:
API Tracing: no
Languages:
----------
Fortran: no
C++: yes
C++ Compiler: /usr/bin/clang++ ( Apple LLVM version 4.2 )
C++ Flags: -arch x86_64
H5 C++ Flags: -O3
AM C++ Flags:
Shared C++ Library: yes
Static C++ Library: no
Features:
---------
Parallel HDF5: no
High Level library: yes
Threadsafety: yes
Default API Mapping: v18
With Deprecated Public Symbols: yes
I/O filters (external): deflate(zlib)
MPE: no
Direct VFD: no
dmalloc: no
Clear file buffers before write: yes
Using memory checker: no
Function Stack Tracing: no
Strict File Format Checks: no
Optimization Instrumentation: no
09:11:59马科斯尤⚡ h5cc-showconfig
HDF5配置摘要
=================================
一般资料:
-------------------
HDF5版本:1.8.17
配置时间:2016年8月2日星期二08:44:51英国夏令时
配置人:ray@rays-Mac.local
配置模式:生产
主机系统:i386-apple-darwin11.4.2
Uname信息:Darwin rays-Mac.local 11.4.2 Darwin内核版本11.4.2:Thu Aug 23 16:25:48 PDT 2012;根目录:xnu-1699.32.7~1/RELEASE_X86_64 X86_64
字节性别:小endian
图书馆:共享
安装点:/Users/Ajay/anaconda
编译选项:
------------------
编写方式:制作
C编译器:/usr/bin/clang(苹果LLVM版本4.2)
CFLAGS:-arch x86_64
H5\u CFLAGS:-O3
上午:
CPPSflags:
H5_CPPFLAGS:-DNDEBUG-UH5_DEBUG_API
上午十时
共享C库:是
静态C库:否
静态链接的可执行文件:否
LDFLAGS:-arch x86_64
H5_标志:
上午十时三十分:
额外库:-lpthread-lz-ldl-lm
建筑师:阿尔
Ranlib:Ranlib
调试包:
API跟踪:否
语言:
----------
福特兰:没有
C++:是的
C++编译器:/Ur/bin/CLAN+(苹果LLVM版本4.2)
C++标志:-拱X8664
H5 C++标志:-O3
AM C++标志:
共享C++库:是的
静态C++库:没有
特征:
---------
并行HDF5:否
高级图书馆:是的
螺纹安全:是的
默认API映射:v18
使用不推荐的公共符号:是
I/O过滤器(外部):放气(zlib)
MPE:没有
直接变频调速:否
德马洛克:没有
写入前清除文件缓冲区:是
使用内存检查器:否
函数堆栈跟踪:否
严格的文件格式检查:否
优化工具:否
库位置
09:11:56马科斯尤⚡ ls/Users/Ajay/anaconda/lib | grep hdf5
-rwxr-xr-x 2 Ajay staff 17232 2016年8月2日libhdf5_hl_cpp.11.dylib
-rwxr-xr-x 2 Ajay staff 123256 2016年8月2日libhdf5_hl.10.dylib
-rwxr-xr-x 2 Ajay staff 445776 2016年8月2日libhdf5_cpp.12.dylib
-rwxr-xr-x 2 Ajay staff 2622428 2016年8月2日libhdf5.10.dylib
lrwxr-xr-x 1 Ajay staff 20 Mar 25 09:11 libhdf5_cpp.dylib->libhdf5_cpp.12.dylib
lrwxr-xr-x 1 Ajay staff 2008年3月25日09:11 libhdf5.dylib->libhdf5.10.dylib
-rwxr-xr-x 1 Ajay staff 1087 Mar 25 09:11 libhdf5_hl_cpp.la
lrwxr-xr-x 1 Ajay staff 23 Mar 25 09:11 libhdf5_hl_cpp.dylib->libhdf5_hl_cpp.11.dylib
-rwxr-xr-x 1 Ajay staff 988 3月25日09:11 libhdf5_hl.la
lrwxr-xr-x 1 Ajay staff 19 Mar 25 09:11 libhdf5_hl.dylib->libhdf5_hl.10.dylib
-rwxr-xr-x 1 Ajay staff 993年3月25日09:11 libhdf5_cpp.la
-rw-r--r--1 Ajay staff 2243 Mar 25 09:11 libhdf5.settings
-rwxr-xr-x 1 Ajay staff 937 Mar 25 09:11 libhdf5.la
根据评论,我现在可以使用
DYLD\u LIBRARY\u PATH=/Users/Ajay/anaconda/lib./a.out
如何使它永久化
我不在Mac电脑上,也不使用Anaconda。不管怎样,我都会试着猜测诊断您的问题:-)
libhdf5_hl.10.dylib
)请求的库与系统中的库不匹配DYLD\u LIBRARY\u路径
到/Users/Ajay/anaconda/lib
的路径。试一试
DYLD_LIBRARY_PATH=/Users/Ajay/anaconda/lib ./a.out
欲了解更多信息,请提供
ls /Users/Ajay/anaconda/lib | grep hdf5
h5cc -showconfig
你是个天才,相信我,你节省了很多时间。我像任何东西一样打碎了我的头。。。。superforyour进一步的问题,这个问题已经被其他用户看到了,但原则上不应该发生。一种可能是使用
export DYLD\u LIBRARY\u PATH=/Users/Ajay/anaconda/lib
导出.bashrc文件中的变量,但这可能会导致anaconda出现其他类型的错误,请参阅另一种可能是使用更新的配方重新构建hdf5:-/
ls /Users/Ajay/anaconda/lib | grep hdf5
h5cc -showconfig