我正在构建一个应用程序并使用x264库作为编码器。我使用MSys/MingW为我的Windows系统建立了库。该库在调试版本下正常工作(注意调试和发布版本都使用默认的VS2010设置)。然而,在释放访问冲突错误是在第一次调用的x264库抛出,特别是:Visual Studio 2010中的libx264 - 发布版本中的内存错误
Unhandled exception at 0x00905a4d in StreamTest.exe:
0xC0000005: Access violation.
错误是在这行抛出:
x264_param_default_preset((params), "veryfast", "zerolatency");
当我搞清楚如何编译库我在Windows/Visual Studios中遇到了很多关于内存对齐的话题,以及它如何与x264预期的对齐方式不兼容。例如,当在MSys中编译时,我必须启用--enable-memalign-hack。我想知道这个错误的来源是否可能源于内存对齐问题,这个问题只能通过发布版本中的某些设置来体现。不幸的是,我对这些细节几乎一无所知,所以来到这里。
任何人都可以给我一些关于内存对齐问题和任何可能导致此问题的Visual Studio设置的信息?任何其他技巧/指针来解决这个问题是非常受欢迎的。
谢谢。
编辑
从下面的回答:
- 从链接SO问题,我得到他补充说:“建立与调试信息”,以OpenCV的建设的印象?由于我通过使用G ++的MSys构建x264库,我不确定我能做到这一点。我已经检查了我的项目的构建设置,并且在发布和调试下都有调试器信息。不知道我是否错过了那篇文章中的内容,请告诉我。
我试过应用验证程序。看来,X264正试图从非可执行内存按在App验证输出执行代码:
VERIFIER STOP 0000000000000650: pid 0x1B18:
尝试在非可执行内存(第一次机会)执行代码。
0000000000905A4D : Address being accessed. 0000000000905A4D : Code performing invalid access. 000000000021EA90 : Exception record. Use .exr to display it. 000000000021E5A0 : Context record. Use .cxr to display it.
任何从这个输出收集?
再次感谢。
感谢您的输入,我已经将您的建议的结果添加到我的OP的编辑。请给出意见! – DeusAduro 2010-12-09 18:25:30