Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 为什么在执行HDF5示例代码期间出现libhdf5_hl not loaded错误?_C_Hdf5 - Fatal编程技术网

C 为什么在执行HDF5示例代码期间出现libhdf5_hl not loaded错误?

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

我正在尝试执行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_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
    )请求的库与系统中的库不匹配
  • 您正在使用Anaconda安装的hdf5。您必须检查Anaconda用于构建hdf5的编译器是什么,并使用相同的编译器
  • 最简单的解决方法是,如果缺少的只是
    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