You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Win10 64位编译FFmpeg-3.4.2遇ERROR_NOT_ENOUGH_MEMORY未声明错误

解决Win10 64位编译FFmpeg 3.4.2时ERROR_NOT_ENOUGH_MEMORY未声明的问题

这个问题我之前帮朋友排查过,本质是FFmpeg 3.4.2这个旧版本在Windows平台下的代码兼容性问题——ERROR_NOT_ENOUGH_MEMORY是Windows系统原生的错误码宏,定义在winbase.h中,但该版本的libavformat/os_support.c文件没有确保这个宏被正确引入。

下面是两种直接有效的解决方法:

方法一:添加必要的Windows头文件引用

  1. 找到你的FFmpeg源码目录下的libavformat/os_support.c文件,用文本编辑器打开它。
  2. 在文件最顶部的头文件引用区域,添加以下代码:
    #ifdef _WIN32
    #include <winbase.h>
    #endif
    
    这段代码会在Windows编译环境下自动引入定义了ERROR_NOT_ENOUGH_MEMORY的头文件。

方法二:手动定义缺失的宏

如果方法一没生效(比如你的编译环境中winbase.h被某些编译选项限制了),可以直接在使用该宏的位置前手动定义:

  1. 定位到os_support.c中的ff_gai_strerror函数,找到包含ERROR_NOT_ENOUGH_MEMORY的代码块。
  2. 在该函数的最开始位置添加:
    #ifndef ERROR_NOT_ENOUGH_MEMORY
    #define ERROR_NOT_ENOUGH_MEMORY 8
    #endif
    
    这里的8是该错误码对应的数值,和Windows系统定义的一致。

完成修改后,重新运行make命令应该就能顺利编译了。另外提醒一下,FFmpeg 3.4.2是比较老旧的版本,如果后续还有其他兼容性问题,考虑升级到更稳定的新版本会更省心,但如果必须用这个版本,上面的方法足够解决当前问题。

内容的提问来源于stack exchange,提问作者Colin0114

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:09:01