Librtmp的交叉编译详解
最近在做一个网络摄像头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文件的路径。
③source /etc/profile立即生效环境变量。
④确定交叉编译环境构建成功与否
至此交叉编译环境搭建完成了。
交叉编译zlib库
①可以通过http://zlib.net/官网下载或者命令wget http://zlib.net/zlib-1.2.11
获取zlib库
②tar -vxf zlib-1.2.11
解压
③cd进zlib库目录输入命令CC=mips-linux-gcc ./configure --prefix=/usr/local
,注意给CC赋的是你自己的交叉编译链名,给prefix赋的值是你想安装的目录,这个按自己的情况进行修改。
④make
⑤make install交叉编译openssl库
①可以通过http://www.openssl.org官网下载或者命令wget http://www.openssl.org/source/openssl-1.0.1u
获取openssl库
②tar -vxf openssl-1.0.1u
解压
③cd进openssl目录输入命令CC=mips-linux-gcc ./config no-asm shared --prefix=/usr/local
,shared是生成动态链接库的参数。
④make
⑤make install
⑥apt-get install libssl-dev
⑦gedit /etc/profile
,在最后添加export C_INCLUDE_PATH=/usr/local/include/
和export CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/usr/local/include/
,这两个路径是openssl的头文件寻找路径,因为我的安装目录在/usr/local
下,所以在添加路径之前确定你自己的openssl头文件路径。之后source /etc/profile
立即生效变量环境。交叉编译librtmp库
①librtmp库可以通过git clone git://git.ffmpeg.org/rtmpdump
从官网上下下来,不过我们只需要其中的librtmp,也可以到https://download.csdn.net/download/weixin_36983723/10743776直接下下来用。
②修改Makefile文件,将其中的CC=$(CROSS_COMPILE)gcc LD=$(CROSS_COMPILE)ld AR=$(CROSS_COMPILE)ar
修改成你自己的交叉编译链,例如我的就改成CC=mips-linux-gcc LD=mips-linux-ld AR=mips-linux-ar
,当然如果嫌麻烦也可以在make的时候加参数make CROSS_COMPILE=mips-linux-
。
修改CRYPTO=OPENSSL
为CRYPTO=/usr/local/bin
,同样这里的路径也是你openssl的安装路径下的bin文件。
③make && make install
Librtmp的交叉编译详解相关推荐
- qt4.8.6交叉编译详解
qt4.8.6交叉编译详解 一.准备工作 0.1 为什么要用交叉编译器? 0.2 交叉编译工具 0.3分类和说明 0.4命名规则 0.5 Codesourcery 0.6 ABI 和 EABI 0.7 ...
- 交叉编译详解 - 概念篇
第 1 章 交叉编译简介 1.1 什么是交叉编译 对于没有做过嵌入式编程的人,可能不太理解交叉编译的概念,那么什么是交叉编译?它有什么作用? 在解释什么是交叉编译之前,先要明白什么是本地编译. 本地编 ...
- 家用路由器研究详解入门(内含仿真环境搭建)
家用路由器研究介绍 soho路由器 常见路由器品牌 家用路由器漏洞主要四个方面 WI-FI常见加密认证方式3种 WPS一键加密技术(Wi-Fi Protected Setup) 路由器密码 后门|溢出 ...
- Linux下boost库的编译、安装详解
1.下载源文件 去官网下载:http://www.boost.org/ 这里下载最新版本 wget https://dl.bintray.com/boostorg/release/1.64.0/sou ...
- CMake手册详解 (十二)
2019独角兽企业重金招聘Python工程师标准>>> SirDigit CMake手册详解 (十二) CMD#30:find_library查找一个库文件 find_library ...
- linux 内核模块(驱动) 编译详解
一.准备工作 准备工作如何做,这里就不详说了. a) 首先,你要有一台PC,装好了Linux. b) 安装好GCC(这个指的是host gcc,用于编译生成运行于pc机程序的).make.ncurse ...
- 【流媒体开发】VLC Media Player - Android 平台源码编译 与 二次开发详解 (提供详细800M下载好的编译源码及eclipse可调试播放器源码下载)
作者 : 韩曙亮 博客地址 : http://blog.csdn.net/shulianghan/article/details/42707293 转载请注明出处 : http://blog.csd ...
- Gcc详解以及静态库、动态库生成
[转] Gcc详解以及静态库.动态库生成 http://www.360doc.com/content/10/0619/14/1795182_33985297.shtml 1.gcc包含的c/c++编译 ...
- Linux平台Makefile文件的编写基础篇和GCC参数详解
问:gcc中的-I.是什么意思....看到了有的是gcc -I. -I/usr/xxxxx..那个-I.是什么意思呢 最佳答案 答:-Ixxx 的意思是除了默认的头文件搜索路径(比如/usr/incl ...
- GCC 命令选项使用详解
GCC 命令行详解[转帖] 1.gcc包含的c/c++编译器 gcc.cc.c++.g++ gcc和cc是一样的,c++和g++是一样的,一般c程序就用gcc编译,c++程序就用g++编译 2.gcc ...
最新文章
- python redis连接池获取后关闭_python通过连接池连接redis,操作redis队列
- CVPR 2021 Oral|只用静态图像,就能实时渲染出丝滑3D效果
- GDCM:Traverse Modules的测试程序
- 教你创建Google网站地图Sitemap.xml(转)
- 四管前级怎么去掉高低音音调_一些歌曲音调太高怎么才能唱上去??
- 信息学奥赛C++语言: 趣味整数5(勾股数)
- [C++] 哈希计数
- P2659 美丽的序列
- 细聊分布式ID生成方法-1
- Android基于ksoap2调用WCF服务(二):Android篇
- 亚马逊alexa智能家电_如何使用Amazon Alexa轻松设置智能家居设备
- inteli211网卡linux驱动,Intel英特尔I210/I340/I350/82575/82580系列网卡驱动5.5.2版For Linux(2021年2月1日发布)...
- 公众号怎么提升阅读量
- 网站克隆工具_全员惊艳!强推5款高质量的小众实用网站
- HTML做一个简单的页面(纯html代码)地球专题学习网站
- suspense源码分析
- python爬虫从企查查获取企业信息-手工绕开企查查的登录验证
- mysql数据库工程师简历_数据库工程师简历-自我评价怎么写(范文)
- 笔试java--链表
- http请求头中的host是什么意思