我升级到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