Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/158.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 处理FFMPEG依赖项_C++_Qt_Ffmpeg_Dependencies_Homebrew - Fatal编程技术网

C++ 处理FFMPEG依赖项

C++ 处理FFMPEG依赖项,c++,qt,ffmpeg,dependencies,homebrew,C++,Qt,Ffmpeg,Dependencies,Homebrew,我正在开发一个(使用),它有几个依赖项,如。因为我主要是为MacOS平台开发,所以我使用来管理我的依赖项,如ffmpeg 因此,当brew公式更改时,我面临API意外更改的问题 自制维护者建议我,通过brew处理依赖关系是一种不好的做法。所以我想知道什么是最好的选择 我正在考虑将ffmpeg添加为我的项目的子模块。您对此有何想法?如果您需要某个库的特定版本,而该版本与当时提供的默认版本冲突 uninstall current release download source of desired

我正在开发一个(使用),它有几个依赖项,如。因为我主要是为MacOS平台开发,所以我使用来管理我的依赖项,如ffmpeg

因此,当brew公式更改时,我面临API意外更改的问题

自制维护者建议我,通过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和errors的输出…您通常可以忽略编译警告…如果一切正常,则发出(linux/OSX)

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

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

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


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

您打算构建ffmpeg吗?我想将我的软件与特定版本的ffmpeg链接。感谢您的帖子!但您提供的步骤仍有一些缺点:ffmpeg将安装在/usr/local中,但不是保留给brew?否,/usr/local/用于任何最终用户安装的代码(不仅仅是brew)…通常系统安装的代码直接进入/usr/…如果你在一个使用良好的系统中浏览,你可以看到在任何一个位置都会出现各种库OK,所以你的答案太冗长了,因为我已经知道如何编译ffmpeg,但希望它能帮助未来的开发人员!
sudo make install