当前位置: 首页 > news >正文

总是编译不过去,怎么知道下的代码里的依赖的库比如 ffmpeg 、qt这些具体是依赖哪个版本的

一句话结论
Olive master 分支目前(2025-10)官方 CI 与多篇实测都锁定在
  • Qt 5.15.x(5.15.2 最稳,6.x 仍可能踩坑)
  • FFmpeg 4.3.x – 5.0.x(4.3.1 / 4.4 / 5.0 均可,7.0 已确认不能用
  • OpenImageIO 2.1.12+
  • OpenColorIO 2.0+
只要把这 4 项版本对齐,90 % 的编译失败都能直接消失。下面给出“一眼就能看出来”的查找方法,免得以后再猜。

1. 官方 README → 先看“硬性”下限

仓库根目录 README.mddoc/build.md 里会写 minimum required 版本,例如
Qt 5.15+, FFmpeg 3.0+, OpenImageIO 2.1.12+, OpenColorIO 2.0+
这是“下限”,实际“上限”要看后面两条。

2. 官方 CI 脚本 → 看“真实”上限

GitHub Actions 文件 .github/workflows/ci.yml 里会把每天编译通过的版本写死:
yaml
复制
- name: Install Qtuses: jurplel/install-qt-action@v3with:version: '5.15.2'          # ← Qt 版本arch: 'win64_msvc2019_64'- name: Install dependenciesrun: vcpkg install ffmpeg:4.4#12 ...   # ← FFmpeg 版本
 
CI 能绿的组合就是开发者当天保证能过的“官方推荐版本”,直接照抄即可。

3. vcpkg.json → 精确到“port 版本号”

Olive 已自带 vcpkg.json,里面要么
  1. 写了 "overrides" → 直接给出 ffmpeg 4.4#12 这类精确版本;
  2. 没写 "overrides" → 把 "builtin-baseline" 那行 commit-id 拿到
    https://github.com/microsoft/vcpkg/tree/<commit-id>

4. 社区踩坑汇总 → 快速验证

  • FFmpeg 7.0 删除 av_get_channel_layout_nb_channels编译即挂
     
  • FFmpeg 4.3.1 通过实测,4.4 / 5.0 也能过
  • Qt 6 目前仍需手动关一些 deprecated warning,5.15.2 最省心
     

5. 一条命令“锁定”正确依赖(Windows 例)

把下面 vcpkg.json 扔进 Olive 同级目录再 vcpkg install 就能一次性拉到“官方当天能过”的版本:
JSON
复制
{"dependencies": [{"name": "ffmpeg", "version>=": "4.4#12"},"opencolorio","openimageio","portaudio"],"overrides": [{"name": "ffmpeg", "version": "4.4#12"}],"builtin-baseline": "3426db0f17ef6df184fcdbfbe0f87cde2313b6ab1"
}
 
CMake 侧再加
cmake
复制
set(CMAKE_PREFIX_PATH "C:/Qt/5.15.2/msvc2019_64" ${CMAKE_PREFIX_PATH})
 
就能和 CI 用的一模一样。

6. 结论速查表(2025-10 有效)

表格
复制
依赖项推荐版本备注
Qt 5.15.2 6.x 需额外补丁
FFmpeg 4.3.1 – 5.0 7.0 API 已删函数,勿用
OpenImageIO ≥ 2.1.12 vcpkg 默认最新即可
OpenColorIO ≥ 2.0 vcpkg 默认最新即可
CMake ≥ 3.20 VS2022 自带已够
按上表锁定版本后,清空 CMake 缓存再编,基本可一次性通过。祝编译顺利!
http://www.jsqmd.com/news/29213/

相关文章:

  • MySQL数据库常用命令
  • List中sublist()用法
  • JavaScript中的闭包:原理与实战
  • Zabbix执行Ping脚本报错,Global script execution被禁用
  • windows---无法删除文件解决办法
  • 2025 年 11 月氨糖厂家最新推荐,聚焦资质、案例、售后的五家机构深度解读
  • 基于嵌入式无人机UAV通信系统的实时最优资源分配算法matlab仿真
  • 2025年11月氨糖厂家最新推荐,聚焦跨平台能力与售后体系的实用指南
  • 2025 年 11 月氨糖厂家最新推荐,高性能与可靠性兼具的优质品牌
  • bash 终端中无法正常使用python
  • MSYS静态编译dav1d最新版本步骤
  • rust学习(四)变量与数据类型
  • 构建现代Web应用:使用React框架打造单页面应用
  • 基于有限体积法(FVM)的MATLAB流体力学求解程序
  • 证明:割空间以及环空间的直和为边空间当且仅当图的生成树个数为偶数
  • langgraph-reflexion
  • WC 2026 备战记录
  • 面向院区病房的空间智能体新范式:下一代病房框架研究(上)
  • JSR 303 常用注解及示例
  • 实用指南:用 Go 并发优化用户中心 API:goroutine 和 errgroup 的实战魔法
  • MySQL02 函数
  • 夸克网盘免费领取1TB空间的方法
  • python:pymupdf的save参数
  • vmware fusion:windows会自动挂起
  • 前端三剑客——javascript函数作用域与内置函数
  • 完全背包内外循环是否能对调?
  • 浅谈ASP.NET Core中间件实现分布式 Session
  • .NET周刊【10月第3期 2025-10-19】
  • 2025 年 11 月快速卷帘门厂家最新推荐,聚焦高端定制需求与全案交付能力!
  • 【大模型应用开发】之调用大模型