繁体   English   中英

错误:swscale-2.dll中找不到序号139

[英]error: Ordinal 139 could not be located in swscale-2.dll

名义上是ffmpeg问题,但可能是标准Windows库和VS版本的问题

运行Win 7,VS2010; 我的程序使用ffmpeg库和dll,所以我刚刚将ffmpeg库升级为ffmpeg-1.1.1,库的Win 32开发版和dll的Win32共享版。

在调试模式下运行我的程序,它运行良好。 更改为发布模式,重新编译所有文件并尝试运行。 我立即收到错误消息Orsinal 139不能位于swscale-2.dll中

两次运行都使用相同的dll [好,我将它们从Debug文件夹复制到Release文件夹。 两次],就像我在调试模式下运行时一样。

有什么线索吗? 这个让我难过。


所以我比较调试和发布之间的属性页。

  • 都具有多头调试集(C ++ /代码生成)
  • 释放模式将“线性优化”引用设置为“是” / OPT:REF,而“调试”则没有任何内容;

==>将其设置为NO并没有收到错误消息“找不到序号39”。

与使用错误的文件几乎没有什么不同。 如果您自己构建它们,请确保:

  • 您使用由FFmpeg构建生成的正确的DLL和LIB文件
  • 您的应用程序加载了正确的DLL,例如不是第三方软件安装的\\ Windows \\ system32中的DLL。

您还可以使用Dependency Walker来识别不匹配项,并检查您尝试使用的swscale.dll是否确实具有问题的导出功能。

不同的lib和dll的建议是错误的。 重新编译库的建议是错误的,因为ffmpeg本质上使用了一些类似Linux的结构,并且仅在困难的情况下才能为Windows编译,因此使用了它们的lib和dll。

这是我仅以一种痛苦的方式找到的正确答案-请勿删除此答案,因为实际上,这是对任何卡有“找不到yyyy.dll序号xxx”错误的人的正确答案。

所以我比较调试和发布之间的属性页。

两者都具有多头调试集(c ++ /代码生成)发行模式,将“线性优化”引用设置为“是” / OPT:REF,而“调试”则没有任何内容; ==>将其设置为NO并没有收到错误消息“找不到序号39”。

我已经为Windows编译了ffmpeg这个问题。 始终是dll / lib不匹配。 甚至连与正确的ffmpeg库链接的主要exe文件,我项目中的某些dll或lib也没有使用新的编译后的ffmpeg库。 因此,您可能已经正确编译了调试依赖关系,而不是发布依赖关系。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM