处理FFMPEG依赖关系

Handle FFMPEG dependency

本文关键字:关系 依赖 FFMPEG 处理      更新时间:2023-10-16

我正在开发一个应用程序(使用有几个依赖项的Qt框架,如ffmpeg。由于我主要是为MacOS平台开发,我使用Homebrew来管理我的依赖项,如ffmpeg

因此,当酿造配方发生变化时,我面临着API意外变化的问题。

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

我正在考虑添加ffmpeg作为我项目的子模块。你对此有什么看法?

如果您需要某个库的特定版本,而该版本与所提供的默认版本冲突,则

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 

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

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和error的输出。。。通常可以忽略编译警告。。。如果一切看起来都很正常,那么发布(linux/OSX)

sudo make install

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

现在,您可以像往常一样编译下游代码,从ffmpeg(有很多)链接到您新提取的库

以上是最简单的情况,假设您已经安装了编译源代码所需的开发人员实用程序(编译器、链接器…)

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