我创建了一个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
请您告诉我忘了添加哪个库?非常感谢你!
答案 0 :(得分:4)
对于具有VS2010或VS2015的hdf5-1.8.17,将H5_BUILT_AS_DYNAMIC_LIB
定义为预处理器设置(项目>属性> C / C ++>预处理器>预处理器定义 )为我治愈完全相同的症状。感谢original post。
答案 1 :(得分:2)
在预处理程序定义输入框中添加HDF5CPP_USEDLL;_HDF5USEDLL_;
。