我尝试过为armv7架构(AllWinner A20)交叉编译WebRTC。在www.webrtc.org上没有关于如何做到这一点的说明,只有针对Android和IOS,在互联网上我发现了一些关于如何做到的帖子,如下:
arm 的WebRTC构建
https://foxdogstudios.com/webrtc-on-linux
https://groups.google.com/forum/#!主题/讨论webrtc/yzuk8wATMU8
https://github.com/mpromonet/webrtc-streamer/wiki/Cross-compile-WebRTC-for-Raspberry-Pi
所有这些都是大约2年前写的,以命令开头:
gclient配置http://webrtc.googlecode.com/svn/trunk
据我所知,它的旧存储库名称和构建系统在过去两年中都发生了变化。有人能帮我完整地指导如何为ARM构建WebTRC吗?
不是针对ARM平台交叉编译WebRTC的最佳解决方案:
安装仓库工具和。。。
mkdir -p web_rtc && cd web_rtc
export GYP_DEFINES="OS=linux"
fetch --nohooks webrtc
gclient sync
cd src
./build/linux/sysroot_scripts/install-sysroot.py --arch=arm
gn gen out/Default --args='target_os="linux" target_cpu="arm"'
## UGLY HACK.
mv webrtc/modules/rtp_rtcp/test/testFec/test_packet_masks_metrics.cc webrtc/modules/rtp_rtcp/test/testFec/test_packet_masks_metrics.cc.bak
touch webrtc/modules/rtp_rtcp/test/testFec/test_packet_masks_metrics.cc
ninja -C out/Default
使用conda创建python2env
$ conda create -n yourenvname python=2.7
创建文件夹并输入
$ mkdir webrtc
$ cd webrtc
克隆仓库工具
$ git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git --depth 1
将其添加到路径
$ export PATH=$PATH:/home/ME/webrtc/depot_tools/
下载源。。。。时间和空间的ALOT
$ fetch --nohooks webrtc
$ cd src
$ git clean -f
获取要编译的修订
$ git ls-remote https://chromium.googlesource.com/external/webrtc --heads branch-heads/72 80865776cf8a1a811166ee005951b7f5b01deacd refs/branch-heads/72
$ gclient sync --force --revision 80865776cf8a1a811166ee005951b7f5b01deacd
$ ./install-build-deps.sh
$ gclient runhooks
为X64编译
$ gn gen out/x64_72 --args='is_debug=true rtc_include_tests=false treat_warnings_as_errors=false use_rtti=true is_component_build=false enable_iterator_debugging=false is_clang=false use_sysroot=false linux_use_bundled_binutils=false use_custom_libcxx=false use_custom_libcxx_for_host=false target_os="linux" target_cpu="x64"'
$ cd ./out/x64_72
$ ninja -C . -j 8
编译前臂64
$ python build/linux/sysroot_scripts/install-sysroot.py --arch=arm64
$ gn gen out/arm64_72 --args='is_debug=false enable_iterator_debugging=false treat_warnings_as_errors=false rtc_include_tests=false target_os="linux" target_cpu="arm64" is_clang=true '
$ cd ./out/arm64_72
$ ninja -C . -j 8