• webrtc-stream编译报错记录


    磁盘空间不足错误

    • 错误信息
    677.2 fatal: cannot create directory at 'blink/web_tests/external/wpt': No space left on device
    
    • 1
    • 说明:这个错误是由于本地在配置docker资源时所给磁盘空间太小导致,直接根据镜像大小合理分配资源大小即可
      docker资源调整

    pushd和popd执行报错

    ERROR: failed to solve: process "/bin/sh -c pushd .." did not complete successfully: exit code: 127
    
    • 1
    • chatgpt了一下,pushd和popd整体相当于执行cd .. 和 cd -操作,这里可以使用cd操作或者直接使用WORKDIR进行目录定位进行操作

    相关依赖不存在报错

    • 官方git给出build如下所示
      在这里插入图片描述
    • 在次步骤中缺少相关依赖,需要执行以下操作
      • 拉取webrtc-stream 后需要拉取相关代码依赖
      git submodule init
      git submodule update 
      
      • 1
      • 2
      • fetch webrtc代码之后需要再执行gclient sync进行同步操作

    cmake执行报错

    • 缺少相关依赖:这种情况直接根据报错安装缺少相关依赖
    • 相关版本不匹:根据提示安装相匹配版本即可

    MAC直接编译报错

    • 编译dockerfile之后生成镜像中不包含lib64目录
    qemu-x86_64: Could not open '/lib64': No such file or directory
    
    • 1
    • google了一波发现都是让使用软链的方式将lib和lib64进行挂载操作,然后继续执行
    qemu-x86_64: Could not open '/lib64/ld-linux-x86-64.so.2': No such file or directory
    
    • 1
    • 发现并没有什么用,挂载后文件中只包含ld-linux-x86-64.so.1
    • 正确做法是由于MAC架构和ubuntu架构不一致导致,添加平台参数编译即可
    docker build --platform linux/x86_64 -t webrtc-stream-test .
    
    • 1

    make到尾出现的最多的一个问题

    • 报错如下,cmake执行后的输出文件中缺少相关的文件
    66.91 [ 99%] Building CXX object CMakeFiles/webrtc-streamer.dir/src/rtspvideocapturer.cpp.o
    68.35 make[2]: *** No rule to make target '../webrtc/src/out/Release/obj/rtc_base/librtc_json.a', needed by 'webrtc-streamer'.  Stop.
    68.35 make[1]: *** [CMakeFiles/Makefile2:124: CMakeFiles/webrtc-streamer.dir/all] Error 2
    68.35 make: *** [Makefile:156: all] Error 2
    
    • 1
    • 2
    • 3
    • 4
    • 本着出错即看issue的原则,果然这个问题提问的很多,但是最终都指向了#491
      在这里插入图片描述

    • dockerfile继续编译
      在这里插入图片描述

    • 然后尝试后后并没有解决,继续翻看issue,看到#619make文件不存在,且截止目前该issue仍处于open状态,根据帖子所说直接docker run到已有镜像中,先删除生成文件,然后重新执行编译,惊奇的是结果竟然成功了
      在这里插入图片描述

    • 看到这个结果时我是很😳的,那么肯定不是命令的问题,肯定是脚本存在相关问题,继续检查脚本,最终发现问题出现在目录定位不对,更改成功后可以直接使用

    总结

    • dockerfile编译整体还是挺麻烦的,如何后续需要继续二开修噶,推荐直接找台ubuntu系统直接操作即可
  • 相关阅读:
    flutter实现透明appbar(一)
    高端制造企业生产设备文件管理,怎样保证好用不丢失文件?
    数字化营销模式有哪些?数字化营销怎么做?
    Ubuntu 录屏软件 peek 安装
    Objective-C的初始化方法中,应该如何读写属性
    绕过AMSI详细指南:如何利用DLL hijack轻松绕过AMSI
    【CSS 中 link 和@import 的区别】
    Ubuntu安装VM TOOLS解决虚拟机无法和WINDOWS粘贴复制问题
    根据文字生成图片插件
    通讯网关软件015——利用CommGate X2MQTT实现MQTT访问Modbus RTU
  • 原文地址:https://blog.csdn.net/double_happiness/article/details/134011946