心血来潮,好久没有编译过WebRTC了,前几天同步了一份最新代码,今天先编译了一下Windows的。有功夫再编译一下其他平台的。这里记录一些编译过程中的关键内容。
Windows
编译日期:2018-11-16
设置命令提示符科学上网代理
set https_proxy=http://127.0.0.1:1086
set http_proxy=http://127.0.0.1:1086
不要http://也可,端口每个人用的都不一样
下载配置depot_tools
下载代码
fetch webrtc (首次)
gclient sync (源码较大,下载中断后执行这个)
切换到master
cd src
git checkout master
git pull origin master
gclient sync
生成VS工程
gn gen out/Default --ide=vs2017
生成的sln位于 out\Default\all.sln
gn gen不加附加参数的话,默认产生的是根据你的Windows系统的版本。如你的Windows是64位系统,生成的就是x64版本。并且使用gn默认产生的是debug版本。可以增加附加的参数改变,举个栗子:
生成release的x86版本
gn gen out/Default --ide=vs2017 --args=“target_cpu=\“x86\” is_debug=false”
注:如果你不清楚gn可以跟哪些参数,可以使用下面的命令查看:
gn args out/Debug --list
gn args out/Release --list
其中 out/Debug out/Release 是输出目录。注意Debug和Release的参数不同。
编译
ninja -C out/Default
附一张webrtc自带的peerconnection c/s例子程序的运行:
Ubuntu
待补
Android
发现网上已经有不少相关的文章了,就不写了。参考文章:
补充信息:
- 编译后,会生成2份libjingle_peerconnection_so.so,带有符号表信息的,位于 **out\Debug[或Release]\lib.unstripped**,如果未来在产品开发中集成了bugly,需要上传符号表的时候,需要从这下面获取。
- 官方预编译好的aar中,包含了armeabi-v7a, arm64-v8a, x86, x86_64四种芯片架构的,所以在使用 tools_webrtc/android/build_aar.py 生成aar的时候,也建议指定这四种。
iOS
待补
参考资料: