HDF5构建与MS vc++ 2008和boost 1.39.0 lib在应用程序中构建与MS vc++ 2010 +
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)和boost 1.45.0,但我仍然试图使用HDF5 1.8.4p1与MS vc++ 2008和boost 1.39.0构建;一切都可以正常构建(我显式地提供了boost_zlib-vc90*)。[lib/dll]需要在我的HDF5 lib路径)。但是当我运行时,我在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库之外,我没有其他追索权吗?
编辑:只是想跟进,我最终建立了HDF5库(有点痛苦,但事情解决了使用CMake路由)在MS vc++ 2010和我的应用程序现在工作得很好。再次感谢。
这是行不通的,不同版本的boost绝对不是二进制兼容的(任何广泛使用c++模板的库都很可能与同一库的其他版本不二进制兼容)。对于visual studio附带的不同版本的c++标准库,可能也是如此。
唯一的解决方案是用MSVC10和boost 1.45重新编译HDF5。
相关文章:
- 如何在MS Visual Studio 2019中运行QT UI
- 参考资源文件VC++中的$(SolutionDir)
- VC++本机单元测试,找不到调试符号
- 在C++中调用 MS SQL 存储过程
- 在这里,当我们比较 if(vc[i]==vc1[i]) 时,它是向量数组. 实际上比较的值是多少,
- VS2015 中的 VC++ 目录
- 在swig.i文件中,如何为基于mfc的第三方dll解析ms-windows-vc++typedef类型
- MS VC++ OpenSSL SSL_read() blocking
- 调试 MS VC++ 2005 中的堆损坏错误
- Windows MS VC++ 2005 上的 CRT 堆调试
- 使用堆调试 MS VC++ 2005
- 致命错误LNK1112,MS Visual Studio 2012 中的 VC++ 目录位置
- MS VC++ 编译器模棱两可
- 使用gdb在MS VC++2010 Express中编译的调试程序
- matlab R2013a与MS VC++2013之间的链接错误
- visual C++如何在MS VC++6.0中编译__thiscall
- 在MS VC 2013 Express中将C++dll从32位转换为64位
- 如何为在MS VC++中开发的C++程序分配特定部分的代码
- cpcms你好世界应用程序与MS vc 2013 Express
- HDF5构建与MS vc++ 2008和boost 1.39.0 lib在应用程序中构建与MS vc++ 2010 +