webrtc源码国产交叉编译

一、webrtc源码获取

参考链接地址为https://webrtc.org.cn/mirror/
本文以m80源码为例,进行讲解说明

二、国产下webrtc静态库交叉编译

2.1 aarch64平台交叉编译环境安装

2.1.1 安装交叉编译工具链
sudo apt-get install binutils-aarch64-linux-gnu
sudo apt-get install gcc-7-aarch64-linux-gnu
sudo apt-get install g++-7-aarch64-linux-gnu
cd /usr/bin
sudo ln -s aarch64-linux-gnu-gcc-7 aarch64-linux-gnu-gcc
sudo ln -s aarch64-linux-gnu-g++-7 aarch64-linux-gnu-g++
2.1.2 源码安装交叉工具依赖库
cd webrtc/build/linux/sysroot_scripts
./install-sysroot.py --arch=arm64
2.1.3 交叉编译aarch64版本webrtc库
gn gen out/Release-aarch64 --args='
                        target_os="linux" 
                        target_cpu="arm64"
                        rtc_use_x11=true
                        is_debug=false 
                        is_component_build=false
                        rtc_include_tests=false
                        rtc_use_h264=true
                        use_rtti=true
                        use_custom_libcxx=false
                        treat_warnings_as_errors=false
                        is_clang=false
                        rtc_enable_protobuf=false
                        symbol_level=0
                        rtc_build_examples=false
                        proprietary_codecs=true
                        rtc_use_pipewire=true
                        rtc_build_ssl = true
                        rtc_build_tools =false
                        ffmpeg_branding="Chrome"
                        use_partition_alloc=false
                        rtc_include_pulse_audio=false
                        '
 ninja -C out/Release-aarch64

2.2 mips64el平台交叉编译环境安装

2.2.1 安装交叉编译工具链
sudo apt-get install binutils-mips64el-linux-gnu
sudo apt-get install gcc-7-mips64el-linux-gnu
sudo apt-get install g++-7-mips64el-linux-gnu
cd /usr/bin
sudo ln -s mips64el-linux-gnu-gcc-7 mips64el-linux-gnu-gcc
sudo ln -s mips64el-linux-gnu-g++-7 mips64el-linux-gnu-g++
2.2.2 源码安装交叉工具依赖库
cd webrtc/build/linux/sysroot_scripts
./install-sysroot.py --arch=mips64el
2.2.3 交叉编译mips64el版本webrtc库
gn gen out/Release-mips64el --args='
                        target_os="linux" 
                        target_cpu="mips64el"
                        rtc_use_x11=true
                        is_debug=false 
                        is_component_build=false
                        rtc_include_tests=false
                        rtc_use_h264=true
                        use_rtti=true
                        use_custom_libcxx=false
                        treat_warnings_as_errors=false
                        is_clang=false
                        rtc_enable_protobuf=false
                        symbol_level=0
                        rtc_build_examples=false
                        proprietary_codecs=true
                        rtc_use_pipewire=true
                        rtc_build_tools =false
                        rtc_build_ssl = true
                        ffmpeg_branding="Chrome"
                        use_partition_alloc=false
                        '
 ninja -C out/Release-mips64el

2.3 loongarch64平台交叉编译环境安装

2.3.1 loongarch64工具链安装

打开龙芯官网下载loongarch交叉工具链
http://ftp.loongnix.cn/toolchain/gcc/release/loongarch/gcc8/loongson-gnu-toolchain-8.3-x86_64-loongarch64-linux-gnu-rc1.2.tar.xz
解压工具链到指定目录,本文档解压到/opt/cross_compile/loongarch64

2.3.2 配置依赖库目录及修改webrtc源码增加loongarch支持

修改工具链配置增加对loongarch交叉编译支持

cd build/toolchain/linux
vim BUILD.gn
文件末尾添加如下工具链设置代码
gcc_toolchain("loongarch64") {
  toolprefix = "loongarch64-linux-gnu-"
  cc = "${toolprefix}gcc -w"
  cxx= "${toolprefix}g++ -w"
  ar = "${toolprefix}ar"
  ld = cxx
  readelf = "${toolprefix}readelf"
  nm = "${toolprefix}nm"

  toolchain_args = {
    cc_wrapper = ""
    current_cpu = "loongarch64"
    current_os = "linux"
    is_clang = false
    use_goma = false
  }
}

导出环境变量指定依赖库位置

export PATH=$PATH:/opt/cross_compile/loongarch64/usr/bin
export SYSROOT="/opt/cross_compile/loongarch64/usr/sysroot"
export CPATH=$CPATH:${SYSROOT}/usr/include:${SYSROOT}/usr/include/glib-2.0:${SYSROOT}/usr/lib/glib-2.0/include:${SYSROOT}/usr/include/gio-unix-2.0
2.3.3交叉编译loongarch64版本webrtc库
gn gen out/Release-loongarch64 --args='
                        target_os="linux"
                        target_cpu="loongarch64"
                        rtc_use_x11=true
                        is_debug=false 
                        is_component_build=false
                        rtc_include_tests=false
                        rtc_use_h264=true
                        use_rtti=true
                        use_custom_libcxx=false
                        treat_warnings_as_errors=false
                        is_clang=false
                        rtc_enable_protobuf=false
                        symbol_level=0
                        rtc_build_examples=false
                        proprietary_codecs=true
                        rtc_use_pipewire=false
                        rtc_build_ssl = true
                        ffmpeg_branding="Chrome"
                        rtc_build_tools =false
                        use_partition_alloc=false
                        '
ninja -C out/Release-loongarch64

2.4 amd64平台交叉编译环境安装

2.4.1 安装编译工具链
sudo apt-get install gcc-7
sudo apt-get install g++-7
2.4.2 源码安装依赖库
cd webrtc/build/linux/sysroot_scripts
./install-sysroot.py --arch=amd64
2.4.3 编译amd64版本webrtc库
gn gen out/Release-amd64 --args='
                        target_os="linux" 
                        target_cpu="x64"
                        rtc_use_x11=true
                        is_debug=false 
                        is_component_build=false
                        rtc_include_tests=false
                        rtc_use_h264=true
                        use_rtti=true
                        use_custom_libcxx=false
                        treat_warnings_as_errors=false
                        is_clang=false
                        rtc_enable_protobuf=false
                        symbol_level=0
                        rtc_build_examples=false
                        proprietary_codecs=true
                        rtc_build_tools =false
                        rtc_use_pipewire=true
                        rtc_build_ssl = true
                        ffmpeg_branding="Chrome"
                        use_partition_alloc=false
                        '
 ninja -C out/Release-amd64
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值