目录
一 docker方式
二Ubuntu虚拟机方式
三 拉取webrtc代码
四 编译
1 设置编译参数,生成ninja文件
2 编译生成 .a文件和.so 文件
3 编译生成aar
五编译错误锦集
1 find local lib sudo strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX
2 erro No module named 'dataclasses'
编译WebRtc代码 谷歌建议在Linux 系统下进行编译Android
在 Mac 上常用方式有两种
1docker方式
2Ubuntu虚拟机方式
安装docker
下载docker镜像
已经配置好了WebRTC Android/Linux开发所需要的环境
但本人在macos 11.3.1 版本通过Docker Desktop3.5版本
编译webrtc代码时docker会莫名奇妙崩溃
Ubuntu安装具体查看
一 Mac安装Ubuntu_zrjliming的博客-CSDN博客_mac安装ubuntu
注意 磁盘容量一定要50G以上,因为系统本身就很大,加上源码下载完就要20G,随便就超过35G
1下载depot_tools
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
下载完之后需要设置环境变量vi ~/.bashrc
,增加以下内容
export PATH=$PATH:/path/depot_tools
在当前环境变量追加路径, #path是自己的depot_tools文件夹的上级路径 ``` 完了,执行`source ~/.bashrc`,然后执行`which gn`或者`which gclient`测试下,有过有内容说明设置成功
2 务必确保在环境下载源码
cd webrtc
fetch --nohooks webrtc_android
#上条命令执行完后,可以编辑当前目录下的.gclient文件
#在taget_os里加上linux,这样这套代码也就可以用于Linux开发了
3、如果中途失败,就执行以下命令gclient sync
4、执行./build/install-build-deps.sh
,这里会下载很多依赖
gn gen out/release4/arm64-v8a --args='target_os="android" target_cpu="arm64" is_debug=false rtc_use_h264=true rtc_include_tests=false rtc_build_examples=false use_custom_libcxx=false treat_warnings_as_errors=false'
ninja -C out/release4/arm64-v8a
生成的目录
python tools_webrtc/android/build_aar.py --output "libwebrtc.aar" --arch "arm64-v8a" --build-dir out/release
usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.26' not found (required by /home/zhourj/rtc/code/src/out/Debug/arm/clang_x64/protoc)
Protoc has returned non-zero status: 1
find local lib sudo strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX
安装GLIBCXX_3.4.26
https://blog.csdn.net/IOIO_/article/details/84001071
pip3 install dataclasses