谷歌webrtc移植嵌入式平台记录

在ubuntu18.04上编译:

前置条件

1、需要翻墙(必须)否则步骤3会报403错误

2、配置开发板的交叉编译工具链的位置 并写入环境变量,配置完在终端输入arm- 按TAB键有出现arm-linux-gnueabihf- 表示配置成功

3、下载depot_tools工具

git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git

4、在环境变量中设置depot_tools的路径

export PATH=$PATH:/home/song/sambashare/webrtc/depot_tools
编译过程

选择编译环境为arm环境

./build/linux/sysroot_scripts/install-sysroot.py --arch=arm

如果要使用其他环境则改 --arch=<> 可以使用的有’arm’, ‘arm64’, ‘i386’, ‘amd64’, ‘mips’, ‘mips64el’

指定编译目标系统和CPU架构

gn gen out/arm --args='target_os="linux" target_cpu="arm" rtc_include_tests=false is_debug=false'

可以加上一些其他参数

rtc_include_tests=false //是否包含测试文件,默认是包含的,最好加上这个选项 = false,否则文件太大

is_debug=false //构建非调试版本

同理如果需要编译为linux x86平台使用的库

需要先指定编译环境,如64位机

./build/linux/sysroot_scripts/install-sysroot.py --arch=amd64

再指定编译目标系统和CPU架构

gn gen out/linux_64 --args='target_os="linux" target_cpu="x64" rtc_include_tests=false is_debug=false'

以上两步执行完后,执行编译 ninja -C <输出文件路径>

** arm平台路径

ninja -C out/arm

** linux_64平台路径

ninja -C out/linux_64

编译过程较慢,需要耐心等待

ARM环境静态库生成

编译结束后使用指令(内容按使用填写)

find <编译目标平台对应的目录路径> -name *.o -exec cp -avx {} <存放.o文件的目录路径> \;

将编译出来的.o文件收集到一个文件中,进入该文件夹中

cd <存放.o文件的目录路径>

使用交叉编译工具将.o打包为.a 静态库

arm-linux-gnueabihf-ar cur libwebrtc.a *.o

使用交叉编译工具将库符号索引表更新 -->不更新会存在程序找不到函数的情况

arm-linux-gnueabihf-ranlib libwebrtc.a

此时生成的libwebrtc.a 就可以拿来用了

Cmake 引用时注意

add_definitions(-std=c++11)
add_definitions(-DWEBRTC_POSIX)
add_definitions(-DWEBRTC_LINUX)

使用webRTC库时 必须定义三个条件
\1. C++11标准编译
\2. 定义使用POSIX标准
\3. 定义使用的OS 也就是LINUX
否则会出现许多的链接错误报告说某些方法找不到定义

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值