ffmpeg-makefile编译分析

本文以 ffmpeg-n4.4.1 的版本为准,主要分析 ffmpeg 项目中 Makefile 的逻辑。

我的环境是window10 + msys2 ,以这个环境为基础进行讲解。

《ffmpeg-configure编译分析》 之前已经讲解了 configure 的作用,就是根据不同的编译环境,生成了相应的 configure.h 跟 config.mak。例如 如果指定 --toolchain=msvc ,makefile里面的规则 就会使用vs2019的 cl.exe 跟 link.exe 来编译跟链接 C代码。如果没指定 toolchain, 就会默认使用 msys2 里面的 gcc.exe 来编译跟链接 C代码。

msys2 里面执行./configure --toolchain=msvc 跟 ./configure 生成的 config.mak 差异如下。
 

从上图可以看到,configure 的时候可以通过 --toolchain 影响编译的时候使用什么样的编译器。

常见错误:

1,Makefile:25: *** missing separator. Stop.

上面的错误基本上是因为 makefile 中要执行的命令,前面不是tab键,而是几个空格,编辑器问题。

在开始分析之前,讲一个 makefile 的调试技巧,推荐阅读《如何调试MAKEFILE变量》

make -f Makefile -f vars.mk HOSTPROGS

这里我对 vars.mk 做了点修改,因为源 vars.mk 没处理特殊字符,直接echo 会报错。ffmpeg makefile 的变量很多特殊字符。我用了 warning 来输出,就不会报错。

vars.mk 文件内容如下:

%:
    $(warning '$*=$($*)')
​
d-%:
#   @printf "%s =888 %s\n" "abc" $($*)
    $(warning '$*=$($*)')
#   @echo '$*=$($*)'
​
#   @echo '  origin = $(origin $*)'
#   @echo '   value = $(value  $*)'
#   @echo '  flavor = $(flavor $*)'

现在从第一行代码开始分析 ffmpeg 里 Makefile 文件的逻辑。不熟悉 makefile 的可以先看一遍《跟我一起写 makefile》

第1~2行代码如下:

MAIN_MAKEFILE=1
include ffbuild/config.mak
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: obs-studio的编译过程是将源代码转换为可执行文件的过程。对于obs-studio而言,它的编译过程涉及多个步骤。 首先,需要将编写的源代码保存为合适的文件格式,通常是使用C++语言进行开发。在编写代码时,需要考虑到obs-studio的特定要求和功能需求。 其次,在编译过程中,需要使用编译器来将源代码转换为机器语言。obs-studio常用的编译器包括GNU编译器集合(GCC)和Clang。编译过程中,编译器会检查代码中的语法错误和逻辑错误,并生成相应的目标文件。 然后,将生成的目标文件与必要的库文件进行链接。obs-studio依赖于许多外部库,如FFmpeg、libobs和libobs-scripting。链接过程的目的是将这些库文件与目标文件进行连接,形成完整的可执行文件。 最后,进行测试和调试。通过测试和调试,可以发现并解决代码中的错误和问题,确保obs-studio能够正常运行并拥有所需功能。 总结来说,obs-studio的编译过程包括保存源代码、使用编译器进行编译、链接库文件以及进行测试和调试。这些步骤将源代码转换为可执行文件,使obs-studio能够顺利运行。 ### 回答2: obs-studio是一款开源的跨平台音视频录制和直播软件。下面将用300字中文回答obs-studio编译过程。 obs-studio的编译过程分为几个主要步骤: 1. 准备环境:首先需要安装相应的编译工具和依赖库。这些工具和库包括cmake、git、gcc等。安装完成后需要进行相关配置,如设置环境变量等。 2. 下载源代码:使用git从obs-studio的官方仓库下载最新的源代码。可以选择稳定版本或开发版,然后通过指定分支或标签来获取对应的代码。 3. 生成编译配置:使用cmake生成编译所需的配置文件。这些配置文件会指明编译器、依赖库路径、编译选项等。 4. 编译代码:运行指定的编译命令,如make或ninja。这将根据配置文件中的指示编译源代码,并生成对应的可执行文件。 5. 安装可执行文件:通过运行make install或ninja install命令,将编译生成的可执行文件和相关的资源文件复制到系统指定的目录中。 6. 设置环境:根据需要,可能需要进行一些环境的配置。比如,设置obs-studio的路径、输入输出设备的选择、直播平台的账号配置等。 综上所述,obs-studio的编译过程包括准备环境、下载源代码、生成配置、编译代码、安装可执行文件和设置环境等步骤。这样就能够成功地将obs-studio软件编译成可用的版本,以供音视频录制和直播等用途。 ### 回答3: OBS-Studio是一款开源的视频录制和直播软件,可以在Windows、Mac和Linux操作系统上使用。编译过程通常包括以下几个步骤: 1. 首先,需要准备编译所需的软件和工具。这包括安装C++编译器、CMake、Git和其他相关的库和依赖项。 2. 接下来,从OBS-Studio的官方GitHub页面上克隆或下载源代码。可以使用Git命令`git clone`或直接下载压缩文件。 3. 一旦源代码被获取,就可以开始配置编译环境。在命令行中导航到源代码的根目录,并执行CMake命令来生成Makefile文件。 4. 在生成的Makefile文件中,可以设置一些选项,如编译类型(Debug或Release)、安装目录等。 5. 确定好编译选项后,就可以运行Make命令进行编译了。这个过程可能需要一些时间,取决于计算机性能和源代码的规模。 6. 编译完成后,将生成可执行文件和相关的库文件。可以通过运行编译后的可执行文件来启动OBS-Studio。 总体来说,OBS-Studio的编译过程相对较简单,但需要一些基本的编译知识和工具的使用经验。通过正确配置编译环境,并按照编译流程进行操作,就可以成功地编译出OBS-Studio的可执行文件,并开始使用这款强大的视频录制和直播软件。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值