• 使用ninja -C out/Release指令编译安卓Webrtc的SDK报错找不到android ndk处理方式


    之前我们也介绍过很多关于webrtc的编译,由于gn 比 GYP 快不少,因此目前我们编译WebRTC是使用 gn 来生成构建脚本,使用 ninja 来构建。

    gn生成ninja命令

    使用 gn 生成 ninja 构建文件的常用命令如下:

    // 生成 debug 版本的构建文件,默认配置
    gn gen out/Debug 
    
    // 生成 release 版本的构建文件
    gn gen out/Release --args="is_debug=false"
    

    ninja脚本

    在skiagyp下面的gyp脚本是模板,执行sync-and-gyp时会根据这些模板来动态生成实际的构建脚本。很多模块依赖、条件等都可以在这个目录下的gyp或gypi中找到。

    使用ninja -C out/Release指令编译报错

    使用ninja -C out/Release指令编译安卓所需要的webrtc sdk时,出现了以下错误:
    ninja: Entering directory `android/Release’
    ninja: error: ‘…/…/third_party/android_ndk/sources/android/cpufeatures/cpu-features.c’, needed by ‘obj/third_party/android_sdk/cpu_features/cpu-features.o’, missing and no known rule to make it

    从这个报错我们可以得知是文件依赖关系有问题,找不到所需要的文件。这种情况有时候是因为工程所在的目录发生改变,找不到依赖,对于webrtc而言,里面所依赖的插件都会下载到webrtc中第三方库里,但是打开webrtc第三方库里面找cpu-features.c文件是找不到的,所以表明webrtc缺少android ndk第三方。

    因此我们需要从安卓官网下载所需ndk(https://developer.android.google.cn/ndk/downloads/revision_history),并拷贝到webrtc目录下面的third_part/android_ndk里面。然后再次运行ninja -C out/Release指令,此错误消失。

  • 相关阅读:
    MySQL中的InnoDB中产生的死锁深究
    MySQL中的触发器应用
    你除了在客户端上会使用Cookie,还能使用哪些可以作为数据缓存呢?
    js中实现输入框类似百度搜索的智能提示效果
    linux系统中启动mysql方式已经客户端如和连接mysql服务器
    linux系统安装mysql数据库
    Linux中实用的命令
    Linux下安装jdk中遇到的坑
    Git初始化配置以及配置github
    springboot中配置文件使用2
  • 原文地址:https://www.cnblogs.com/TSINGSEE/p/15040670.html
Copyright © 2020-2023  润新知