我正在使用Visual Studio 2010编写Qt应用程序。我的应用程序“Review.exe”使用QtAV.dll
链接到QtAV.lib
。反过来,QtAV链接到ffmpeg,portaudio,gdiplus等。
调试版本可以正常工作。
当我尝试运行发布版本时,我得到:
无法在动态链接库GdipAlloc
中找到过程入口点avcodec-54.dll
。
GdipAlloc
是Gdiplus
的一部分。为什么要搜索错误的dll函数?这只发生在发布版本中。
如果我将QtAV.dll
的发布版本替换为QtAV.dll
的调试版本,则Review的发布版本将加载QtAV.dll
的调试版本。
在发布版本上设置链接器标志/DEBUG
会导致问题消失。但是,我想弄清楚原因和适当的解决方案。
答案 0 :(得分:0)
我发现它确实发生在vs2010上。 vs2012工作正常。我再次编译vs2010的portaudio(使用cmake非常简单),并通过vs2010工具生成FFmpeg .lib文件,然后再次编译QtAV,这个错误就消失了! 我上传了新的开发文件来构建QtAV。在这里下载FFmpeg-2.0.1_mingw32 + msvc.7z和portaudio-v19_msvc2010x86_20130813.7z:https://sourceforge.net/projects/qtav/files/depends
:)