簡體   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