使用ffmpeg库提示无法定位程序输入点av_xx于动态链接库avcodec-58.dll上

分类: C/C++ 发布时间: 2018-02-19 21:20

最近需要使用ffmpeg开发视频和音频的解码,从ffmpeg官网下载编译好的库文件,配置到VS2013中,到程序运行起来,中间遇到很多问题,于是做个记录,希望给遇到同样问题的童鞋们一起帮助。

  1. 首先从官网上下载库文件,我选择的是32为的下载包  https://ffmpeg.zeranoe.com/builds/,     我下载的文件目录为ffmpeg-20180217-dd8351b-win32-XXX
  2. 将下载的dev目录中的include和lib文件复制到项目工程下,将shared目录中的dll复制到生成的exe目录下.
  3. 配置加载库文件和lib文件。
  4. 复制dev目录中的example中的一个例子,运行。
  5. 在执行过程中会报找不到av_xx函数,在这个地方我也是被困扰的泪崩,后来才发现是lib文件不对,因为动态库中的ffplay.exe都运行的很正确。正确的执行方法是先使用pexports将dll转化为def文件,然后使用lib.exe将def文件转化为lib,使用转化后的lib,程序正常运行起来了。
  6. 在 release下还需要将 属性-链接器-优化-引用 修改为(/OPT:NOREF)选项.
  7. 我编译好的lib的链接     newlib:链接:https://pan.baidu.com/s/1i7eUBel 密码:5qgb
  8.      动态链接库: 链接:https://pan.baidu.com/s/1i65cN9F 密码:txbh
  9.   dev: 链接:https://pan.baidu.com/s/1ggDoxJP 密码:gway

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!