处理FFMPEG依赖关系
Handle FFMPEG dependency
我正在开发一个应用程序(使用有几个依赖项的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
相关文章:
- C++GTKMM gui循环依赖关系
- 如何在头文件中声明类模板(由于循环依赖关系)
- 对在不同二进制文件中创建的对象文件的依赖关系
- 使用Bazel构建具有不同编译器/链接器选项的C/C++依赖关系
- OpenVINO - 推理库插件 libMKLDNNPlugin.so 无法解析依赖关系
- 模拟测试中类的依赖关系
- C++模板方法中的循环依赖关系
- 解析正交模块的依赖关系
- 如何在 Mac OS 上安装 boost-mpi 及其对 clang 的依赖关系?
- Wt::D bo 中的循环依赖关系
- 在包含窗口标头时难以解决循环依赖关系问题
- 当依赖关系和依赖关系都是多态时,在哪个继承级别存储依赖关系指针?
- 解决循环依赖关系 c++ 的想法
- C++循环依赖关系,未声明的标识符
- C++ 中的循环依赖关系问题
- 为什么包含需要进一步的依赖关系?
- 使用 cmake 获取外部依赖关系
- CMake 外部和内部静态库的循环依赖关系
- 在没有Xcode的macOS中开发具有依赖关系的应用程序
- "std::shared_ptr"循环依赖关系是如何导致问题的