我升级到MS VC ++ 2010(Visual Studio Professional)并提升1.45.0但我仍在尝试使用MS VC ++ 2008构建的HDF5 1.8.4p1并提升1.39.0;一切都很好(我明确提供了我的HDF5 lib路径中所需的boost_zlib-vc90 *。[lib / dll])。但是当我运行时,我在HDF5库中得到以下运行时错误:
Unhandled exception at 0x... in <exec>: 0x... : Access violation reading location 0xffffffffffffffff
该错误似乎与HDF5库明显隔离。访问冲突发生在下面函数调用内的H5File(...)构造函数中(我通过分成两行代码确认它)。我也试过更改HDF5文件访问标志,但无济于事:
m_file.reset(new H5::H5File(path, H5F_ACC_RDONLY));
这里m_file的类型为:
boost::shared_ptr<H5::H5File>
除了使用MS VC ++ 2010和boost_zlib 1.45构建HDF5库之外,我没有其他办法吗?
编辑:
我只是想跟进,我最终在MS VC ++ 2010上构建了HDF5库(有点痛苦,但是使用了CMake路线的功能)并且我的应用程序现在工作正常。再次感谢。
答案 0 :(得分:1)
这将永远不会工作,不同版本的boost绝对不是二进制兼容的(任何大量使用C ++模板的库很可能不与同一个库的其他版本二进制兼容)。 对于visual studio附带的C ++标准库的不同版本,也可以这样说。
唯一的解决方案是使用MSVC10重新编译HDF5并增强1.45。