打开HDF5文件错误

时间:2011-08-04 03:22:27

标签: c++ hdf5

我创建了一个HDF5文件打开函数,如下所示:

int OpenHDF5(string sFileName)
{   
    // Check for valid HDF5 file 
    if (!H5File::isHdf5(sFileName.c_str())) 
    {   
       // Invalid HDF5 file
       return -1
    }

    // Try block to detect exceptions raised by any of the calls inside it
    try
    {  
       // Turn off the auto-printing when failure occurs so that we can handle the errors appropriately
       Exception::dontPrint();

       // Now Open the file
       H5File file( sFileName.c_str(), H5F_ACC_RDONLY ); 
    }  

    // Catch failure caused by the H5File operations
    catch( FileIException error )
    {   
        error.printError();
        return -1
    }

    return 0
}           

未发生编译错误,但未能与以下异常链接: 链接...
创建库F:\ Tips \ Debug \ Tips.lib和对象F:\ Tips \ Debug \ Tips.exp
TwinSatObservation.obj:错误LNK2001:未解析的外部符号“public:static class H5 :: FileCreatPropList const H5 :: FileCreatPropList :: DEFAULT”(?DEFAULT @ FileCreatPropList @ H5 @@ 2V12 @ B)
TwinSatObservation.obj:错误LNK2001:未解析的外部符号“public:static class H5 :: FileAccPropList const H5 :: FileAccPropList :: DEFAULT”(?DEFAULT @ FileAccPropList @ H5 @@ 2V12 @ B)
F:\ Tips \ Debug \ Tips.exe:致命错误LNK1120:2个未解析的外部因素

我将以下库添加到VS 2008 Linker的“Addtional Dependencies”输入框中     hdf5dll.lib
    hdf5_hldll.lib
    hdf5_cppdll.lib
    hdf5_hl_cppdll.lib

请您告诉我忘了添加哪个库?非常感谢你!

2 个答案:

答案 0 :(得分:4)

对于具有VS2010或VS2015的hdf5-1.8.17,将H5_BUILT_AS_DYNAMIC_LIB定义为预处理器设置(项目>属性> C / C ++>预处理器>预处理器定义 )为我治愈完全相同的症状。感谢original post

答案 1 :(得分:2)

预处理程序定义输入框中添加HDF5CPP_USEDLL;_HDF5USEDLL_;