最近在做一个网络摄像头RTMP推流项目,由于只需要rtmp一些基础的连接,推流接口,所以只需要编译Rtmpdump里面的librtmp库。想要交叉编译librtmp这个库需要准备三样东西:openssl,zlib,你自己的交叉编译链。openssl,zlib是librtmp编译所依赖的库,openssl是有关数据加密的库,zlib是有关数据压缩的库。如果你不需要这些或者不想这么麻烦可以参考https://blog.csdn.net/fteworld/article/details/51171731,根据他的方法可以免openssl,zlib编译,如果编译时仍出现zlib.h无法找到的报错时,你可以把报错的那个文件的#include <zlib.h>去掉,我试过报错的文件是hashswf.c,直接把这个文件的#include <zlib.h>去掉就可以make过了。
话题拉回来正常交叉编译librtmp库需要四步:
- 构建自己的交叉编译环境
根据你硬件芯片的不同,各个公司的SDK包里面都有提供相应的交叉编译链,有些公司的交叉编译链的安装过程可能更加方便,你按照他的说明就可以了(用过海思的交叉编译链安装,只需要运行他的脚本就可以了很方便),我这里说的是一般的安装方法。
①拿到你的交叉编译链,命令tar -vxf 交叉编译链.tar
解压。
②gedit /etc/profile
修改环境变量,在最后增加export PATH=$PATH:/home/tang/Desktop/sample/rsdk-4.8.5-5281-EL-3.10-u0.9.33-m32fut-161202/bin
注意$PATH:
后面跟的是你自己交叉编译链文件下的bin文件的路径。
③sour