繁体   English   中英

使用MS VC ++ 2008构建的HDF5和使用MS VC ++ 2010 + Boost 1.45.0构建的应用程序中的Boost 1.39.0库

[英]HDF5 built with MS VC++ 2008 and boost 1.39.0 libs in application built with MS VC++ 2010 + boost 1.45.0

我已升级到MS VC ++ 2010(Visual Studio Professional)并增强了1.45.0,但我仍在尝试使用由MS VC ++ 2008和boost 1.39.0构建的HDF5 1.8.4p1; 一切正常(我在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路由解决了问题),我的应用程序现在可以正常工作了。 再次感谢。

这永远都行不通,因为boost的不同版本肯定不是二进制兼容的(任何广泛使用C ++模板的库很可能与同一库的其他版本都不兼容)。 假定Visual Studio附带的不同版本的C ++标准库也是如此。

唯一的解决方案是用MSVC10重新编译HDF5,并提高1.45。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM