名义上是一个ffmpeg问题,但它可能是标准Windows库和版本的问题。 VS
运行Win 7,VS2010;我的程序使用ffmpeg库和dll所以我只是将ffmpeg库升级到ffmpeg-1.1.1 win 32 dev for libraries和win32-shared for dlls。
在调试模式下运行我的程序,运行正常。更改为发布模式,重新编译所有并尝试运行。我立即收到错误消息Ordinal 139无法在swscale-2.dll
中找到为两次运行使用相同的dll [好吧,我将它们从Debug文件夹复制到Release文件夹。我在调试模式下运行时的两次。
任何线索?这个让我很难过。
所以我在比较调试和发布之间的属性页。
==>将其设置为NO并且没有收到错误消息re ordinal 39 not found。
答案 0 :(得分:0)
与使用错误的文件几乎没有什么不同。如果您自己构建它们,请确保:
您还可以使用Dependency Walker来识别不匹配,并检查您尝试使用的swscale.dll是否确实具有相关的导出功能。
答案 1 :(得分:0)
不同的lib和dll的建议是错误的。重新编译库的建议是错误的,因为基本上ffmpeg使用一些类似Linux的构造,并且只能很难编译为windows,因此使用它们的lib和dll。
这是我只能以痛苦的方式找到的正确答案 - 不要删除它,因为它实际上是任何人遇到“Ordinal xxx无法找到”的错误的正确答案我yyyy.dll “
所以我在比较调试和发布之间的属性页。
都有多头调试集(c ++ / code geneeration) 发布模式将Liner Optimization引用设置为Yes / OPT:REF,而debug没有任何内容; ==>将其设置为NO并且没有收到错误消息re ordinal 39 not found。
答案 2 :(得分:0)
我在为windows编译的ffmpeg中遇到过这个问题。它总是dll / lib不匹配。即使我的主要exe链接到正确的ffmpeg库,我的项目中的一些dll或lib也没有使用新编译的ffmpeg库。因此,您可能已正确编译了调试依赖项,而不是您的发布版本。