【问题标题】:Handle FFMPEG dependency处理 FFMPEG 依赖
【发布时间】:2015-06-27 03:50:00
【问题描述】:

我正在开发一个application(使用具有多个依赖项的Qt framework,例如ffmpeg。由于我主要为MacOS 平台开发,我使用Homebrew 来管理我的依赖项,例如 ffmpeg

因此,当 brew 公式更改时,我遇到了意外的 API 更改问题。

Homebrew 维护人员建议我通过 brew 处理依赖项是一种不好的做法。所以我想知道什么是最好的选择?

我正在考虑将 ffmpeg 添加为我项目的子模块。你怎么看?

【问题讨论】:

  • 你打算构建ffmpeg吗?
  • 我想将我的软件与特定版本的 ffmpeg 链接。

标签: c++ qt ffmpeg dependencies homebrew


【解决方案1】:

如果您需要某个库的特定版本,它与提供的默认值冲突,那么

uninstall current release

download source of desired release https://ffmpeg.org/download.html#releases

decompress source code into some location then cd into there

作为自己的问题

./configure 

仔细检查输出,如果没有 ERROR 的迹象并且它正确地找到上游库,那么你自己发出以下之一

make       # only uses one CPU core still works but slower than -jxxx
make -j4   # to speed up make and you have a dual core CPU
make -j8   # to speed up make and you have a quad core CPU

现在检查 make for 和错误的输出...您通常可以忽略编译警告...如果一切正常,则发出 (linux/OSX)

sudo make install

这会将库和可执行文件分发到标准位置,这些位置对于下游应用的后续链接可见

现在您可以正常编译下游代码,以从 ffmpeg 链接到新分发的库(有很多)

以上是最简单的情况,因为您已经安装了编译源代码所需的开发工具(编译器、链接器等)

如果由于上游库的丢失或不正确版本而导致上述失败,请先重​​复类似的步骤,然后返回编译 ffmpeg(递归下降到库依赖安装疯狂)...我发现编译大量打开源库在 linux 上比 OSX 更容易、更标准化...... YMMV

【讨论】:

  • 感谢您的帖子!但是您提供的步骤仍然存在一些暗点:ffmpeg 将安装在 /usr/local 但不是保留给 brew?
  • 不,/usr/local/ 适用于任何最终用户安装的代码(不仅仅是 brew)... 通常系统安装的代码直接进入 /usr/ .... 如果您在一个使用良好的系统,您可以看到在任一位置出现的各种库
  • 好的,所以你的回答太冗长了,因为我已经知道如何编译 ffmpeg,但希望它能对未来的开发人员有所帮助!
猜你喜欢
  • 2012-05-10
  • 2011-09-03
  • 2018-08-03
  • 2011-07-26
  • 2015-05-11
  • 1970-01-01
  • 1970-01-01
  • 2016-06-10
  • 1970-01-01
相关资源
最近更新 更多