前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >疑难杂症又一记

疑难杂症又一记

作者头像
用户2615200
发布2018-12-05 15:21:51
3730
发布2018-12-05 15:21:51
举报

版权声明:本文为博主原创文章,未经博主允许不得转载。

本文简述了一种 OGRE 示例程序 SampleBrowser 运行出错的解决方法

下了 OGRE 的 1.10.11 版本,使用 CMake 生成了相应的工程文件,遂而编译源码和示例,一切都挺顺利,但是当尝试 Debug 模式下执行 SampleBrowser 时却报了错: Unable to read zip file …

简单google了一下,大部分的说法都是配置的资源路径有问题,尝试修改了一下,未能解决问题,于是索性调试源码了.

不过调试的结果有些奇怪,错误似乎发生在依赖库 zzip 中,出错的 API 调用是这个:

简单跟了一下 zzip 的内部代码,发现出错点好像是发生在运行时库中,这让人觉得困惑.

后来尝试 Release 模式运行了一下 SampleBrowser ,没想竟然成功了!遂而比较了一下差异,最后发现是运行时库的冲突导致了这个问题,简而言之, zzip 是静态链接入程序中的,其使用的是 多线程DLL(/MD) 运行时库,而程序本身使用的是 多线程调试DLL(/MDd) 运行时库(Debug模式下),运行时库的冲突导致了诸如 fstat 等标准库函数的执行异常,继而导致了上述的加载出错问题.

解决方法也简单, Debug 模式下链接 zzip 的调试库即可(下载生成的 OGRE 工程中即带有 zzip 项目).

现在终于可以在 Debug 模式下正确执行 SampleBrowser 了~

这里有一个相关的讨论.

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018年11月02日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档