
FFmpeg 原生编译 开发环境完整限制一、编译脚本层面核心限制(最关键)FFmpeg 自带configure是Bash Shell 脚本,不支持 Windows CMD/PowerShell、VS 命令行,直接决定环境门槛:必须类 Unix Shell 环境Windows 原生终端无法执行./configure,只能通过:MSYS2 / MinGW-w64 shellCygwin(不推荐,产物带 cygwin 依赖)WSL(编译出 Linux .so,不能给 Windows Qt 使用) Linux/macOS 自带 bash,无此限制。依赖 GNU 工具链编译依赖:make、sed、awk、git、pkg-config; Visual Studio 自带工具集没有这些,不能直接跑原生 configure。二、编译器限制1. GCC / Clang(原生完美支持)Linux、macOS、MSYS2 MinGW-w64 GCC 是官方主推编译器,全功能支持所有编码、硬件加速、汇编优化。2. MSVC(Visual Studio,严重受限)FFmpeg原生不支持 MSVC,分两种场景: 1)直接跑 configure:完全不支持,会直接报错退出; 2)官方提供build_msvc手动工程脚本,有大量短板:不自动适配第三方库(x264/x265/fdk-aac 集成极其麻烦);部分汇编优化代码缺失,性能低于 GCC 编译版本;高版本 FFmpeg 对老 MSVC(如 VS2015)兼容性差;编译步骤繁琐,没有一键 configure 自动配置。你使用 Qt5.9.9 MSVC2015_64 场景:只能用 MSYS2 MinGW 编译 FFmpeg dll+lib 给 MSVC 间接调用,不能直接 MSVC 编译源码。3. 编译器 ABI 不互通MinGW GCC 编译.a静态库不能被 MSVC 链接;MSVC.lib静态库不能被 MinGW Qt 链接;只有动态库方案跨编译器通用(dll + 对应导入库)。三、汇编工具硬性限制(FFmpeg 必选)FFmpeg 大量音视频汇编优化,二选一必须安装:yasm或nasmWindows VS、Qt 自带环境默认不带,必须 MSYS2 安装;缺少汇编器会直接 configure 失败,或编译出无硬件加速、性能极低的版本。四、操作系统 目标平台限制Windows只能 MinGW-w64 编译生成 mingw 目标程序;原生 configure 不识别 MSVC 运行时;Linux GCC/Clang 无任