step1、安装依赖
所有时 | Terminal + Shell + GNU CoreUtils |
下载时 | cURL |
解压时 | tar + gzip |
编译时 | gmake、gcc / GCC | Clang / LLVM |
运行时 |
step2、使用curl命令下载RTMPDump
源码包 ()
curl -LO https://mirrors.tuna.tsinghua.edu.cn/debian/pool/main/r/rtmpdump/rtmpdump_2.4+20151223.gitfa8646d.1.orig.tar.gz
step3、使用tar解压RTMPDump
源码包
tar vxf rtmpdump_2.4+20151223.gitfa8646d.1.orig.tar.gz
step4、进入rtmpdump-20151223
目录
cd rtmpdump-20151223
step5、查看rtmpdump-20151223
目录中的内容
step6、使用curl命令下载RTMPDump
源码包针对OpenSSL 1.1
的补丁
curl -LO https://raw.githubusercontent.com/Homebrew/formula-patches/85fa66a9/rtmpdump/openssl-1.1.diff
RTMPDump
源码使用的是OpenSSL 1.0
,现在基本上都使用OpenSSL 1.1
,两个版本之间的API
有变化,所以,我们需要打个补丁。
step7、应用补丁
patch -p0 < openssl-1.1.diff
step8、修改librtmp/Makefile
文件
如果您当前的操作系统是macOS,请执行如下的命令,否则跳过该步:
sed -i".bak" "s@soname@install_name@g" librtmp/Makefile
这个意思是把librtmp/Makefile
文件中的soname
字符串替换为install_name
, 这么做的原因是:-soname
是GNU ld的参数, 而macOS系统不使用GNU ld, 它自己的ld
没有-soname
参数,与他相同意思的参数是-install_name
。
step9、使用make进行编译、安装
make [option]... [VAR=VALUE]... [TARGET]...
VAR | VALUE示例 | 说明 |
---|---|---|
CC | gcc | clang | 指定C编译器 |
CFLAGS | -O2 -v | 指定C编译器的参数。覆盖Makefile 中CFLAGS 的定义 |
XCFLAGS | -O2 -v | 指定C编译器的参数。扩展Makefile 中CFLAGS 的定义 |
LD | ld | 指定C链接器 |
LDFLAGS | -L<libDIR> | 指定C链接器的参数。覆盖Makefile 中LDFLAGS 的定义 |
XLDFLAGS | -L<libDIR> | 指定C链接器的参数。扩展Makefile 中LDFLAGS 的定义 |
LIBS | -l<libName> | 指定C链接器要链接的库的名称 |
CROSS_COMPILE | aarch64-linux-android- | 指定交叉编译工具 的前缀 |
示例:
make CFLAGS='-O2 -v' && sudo make install prefix=/usr