本文简述了一种 OGRE 示例程序 SampleBrowser 运行出错的解决方法
下了 OGRE 的 1.10.11 版本,使用 CMake 生成了相应的工程文件,遂而编译源码和示例,一切都挺顺利...,但是当尝试 Debug 模式下执行 SampleBrowser 时却报了错: Unable to read zip file …
简单google了一下,大部分的说法都是配置的资源路径有问题,尝试修改了一下...不过调试的结果有些奇怪,错误似乎发生在依赖库 zzip 中,出错的 API 调用是这个:
简单跟了一下 zzip 的内部代码,发现出错点好像是发生在运行时库中,这让人觉得困惑....遂而比较了一下差异,最后发现是运行时库的冲突导致了这个问题,简而言之, zzip 是静态链接入程序中的,其使用的是 多线程DLL(/MD) 运行时库,而程序本身使用的是 多线程调试DLL(/MDd) 运行时库...(Debug模式下),运行时库的冲突导致了诸如 fstat 等标准库函数的执行异常,继而导致了上述的加载出错问题.