我升級到MS VC++ 2010(Visual Studio Professional)並升級1.45.0,但我仍在嘗試使用HDF5 1.8.4p1內置MS VC++ 2008和boost 1.39.0;一切都很好(我明確提供了我的HDF5 lib路徑中所需的boost_zlib-vc90 *。[lib/dll])。但是,當我跑我得到了HDF5庫以下運行時錯誤:出現HDF5內置MS VC++ 2008和boost 1.39.0在使用MS VC++ 2010 + boost構建的應用程序庫中1.45.0
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>
我必須比建設HDF5庫與MS VC之外沒有其他辦法++ 2010和boost_zlib 1.45?
編輯:
只是想跟進,我結束了建設HDF5庫(是一個痛苦的一點點,但事情成功的使用CMake的路線)上MS VC++ 2010和我的應用程序工作正常現在。再次感謝。
謝謝@smerlin。這正是我希望聽到的。 –
+1,絕對正確。另外,所有的東西都必須用相同的CRT編譯器選項編譯。 – ildjarn
@ildjarn:如果CRT版本在次要版本號(Visual Studio版本和Service Pack版本必須匹配)上有所不同,那麼它的大部分時間都可以,但只有在動態鏈接時,以及在運行時加載的CRT版本是相同的可以使用清單文件來實現)。 – smerlin