首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >VisualStudio2010中的libx264 -版本构建中的内存错误

VisualStudio2010中的libx264 -版本构建中的内存错误
EN

Stack Overflow用户
提问于 2010-12-08 19:01:30
回答 1查看 1.5K关注 0票数 0

我正在构建一个应用程序,并使用x264库作为编码器。我已经建立了我的窗口系统的图书馆使用MSys/明威。该库在调试构建下工作良好(注意,调试和发布版本都使用默认的VS2010设置)。但是,在发布时,在第一次调用x264库时会引发访问冲突错误,特别是:

代码语言:javascript
复制
  Unhandled exception at 0x00905a4d in StreamTest.exe:
  0xC0000005: Access violation.

此错误将抛出在以下一行:

代码语言:javascript
复制
x264_param_default_preset((params), "veryfast", "zerolatency");

在我研究如何编译库时,我遇到了很多关于在Windows/Visual中内存对齐的讨论,以及它是如何与x264所期望的对齐方式不兼容的。例如,在用MSys编译时,我必须启用--启用--memalign。我想知道这个错误的来源是否来自一个内存对齐问题,这个问题只通过我的发行版构建中的一些设置来表现出来。不幸的是,我对细节几乎一无所知,因此来到这里。

有人能给我一些关于内存对齐问题和任何Visual设置的更多信息吗?解决此问题的任何其他提示/指针都非常受欢迎。

谢谢。

编辑

答复如下:

  1. 从链接所以问题,我得到的印象是,他添加了“构建调试器信息”到OpenCV构建?由于我正在使用x264通过MSys构建G++库,所以我不确定我是否能做到这一点。我已经检查了我的项目的构建设置,并且在发行版和调试下面都有调试器信息。不知道我是不是在那篇文章里漏掉了什么,请告诉我。
  2. 我试过应用程序验证器。看来,x264正在尝试根据App的输出从非可执行内存执行代码: 验证器停止0000000000000650: pid 0x1B18: 尝试在非可执行内存中执行代码(第一次机会)。 0000000000905A4D :正在访问的地址。0000000000905A4D :执行无效访问的代码。000000000021EA90 :异常记录。使用.exr来显示它。0000000021E5A0:上下文记录。使用.cxr来显示它。

从这个输出中收集到什么?

再次感谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-12-09 04:18:03

请参考类似的问题这里,看看这是否对您也有帮助。

编辑

发布您还希望通过AppVerifier运行应用程序的帖子

编辑

在我看来,“使用调试器信息构建”相当于与优化开关一起打开-g开关,并关闭任何调试宏。另外,如果您附加了调试器(使用旗子 )来使用调试器启动进程(获取windbg的副本并使用该副本进行调试)。

当应用程序停止时,使用.cxr命令获取上下文信息。这应该有助于指出这个问题。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4391193

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档