首页 > 编程语言 >WebRTC源码学习02---webrtc源码编译安装(Mac)

WebRTC源码学习02---webrtc源码编译安装(Mac)

时间:2022-10-24 20:24:16浏览次数:89  
标签:02 src xcode --- 源码 https gn webrtc liudie

参考文献

https://webrtc.org.cn/mirror/ (主要参考文章)

https://www.an.rustfisher.com/webrtc/intro/sync-build/(参考一下代理设置)

https://blog.csdn.net/dangwei_90/article/details/110224909(xcode内建库版本修改)

安装过程遇到的问题

(一)同步WebRTC,vi .gclient对.gclient添加以下内容

solutions = [
  { "name"        : "src",
    "url"         : "https://webrtc.bj2.agoralab.co/webrtc-mirror/src.git@65e8d9facab05de13634d777702b2c93288f8849",
    "deps_file"   : "DEPS",
    "managed"     : False,
    "safesync_url": "",
    "custom_deps": {
    },
  },
]
target_os = ["mac"] 

其中target_os根据自己的系统选择"linux","Android","ios","mac"

(二)src/third_party目录不存在

创建就行,注意所属目录和你执行gclient sync的用户一致

mkdir -p src/third_party

(三)环境问题(去tmd环境,耽误我好久):It thinks sys.prefix is u'/Library/Frameworks/Python.framework/Versions/2.7' (should be ...)

________ running 'vpython src/build/landmines.py --landmine-scripts src/tools_webrtc/get_landmines.py --src-dir src' in '/Users/liudie/ws/webrtc-proj/webrtc'
[E2022-09-27T10:20:26.947067+08:00 97959 0 venv.go:969] Command (cwd=/var/folders/nr/f3mrb__s5hx22gqg6cdknkx80000gn/T/vpython_bootstrap629862980/packages/virtualenv-15.1.0): [/usr/local/bin/python2.7 -B -E -s virtualenv.py --no-download /Users/liudie/.vpython-root/a3399d]
Process output:
New python executable in /Users/liudie/.vpython-root/a3399d/bin/python
ERROR: The executable /Users/liudie/.vpython-root/a3399d/bin/python is not functioning
ERROR: It thinks sys.prefix is u'/Library/Frameworks/Python.framework/Versions/2.7' (should be u'/Users/liudie/.vpython-root/a3399d')
ERROR: virtualenv is not compatible with this system or executable

陆陆续续困扰了我好久,看了这篇文章https://blog.csdn.net/weixin_40007016/article/details/118806597。是python多版本环境导致的,所以压根不用管如何处理现有的多版本环境,直接祭出环境管理神器anaconda即可!

1.下载anaconda

https://www.anaconda.com/download/#macos

记得将conda的bin目录加入path中:

export PATH=/Users/liudie/opt/anaconda3/bin:$PATH

2.更新conda

conda update anaconda

3.创建我们需要的python2.7环境即可

conda create -n python27 python=2.7
conda activate python27  #进入环境
conda deactivate  #退出环境

4.进入我们的python27环境,正常执行下载、编译、安装即可

date; gclient sync; date

(四)编译问题

gn gen out/Release "--args=is_debug=false"

1.xcode-select: error: tool 'xcodebuild' requires Xcode, but active developer directory '/Library/Developer/CommandLineTools' is a command line tools instance

一般是xcode还没有安装导致,即便我们发现存在xcode-select命令,但是实际上是无法使用的,我们需要去重新下载xcode

(1)去官网下载xcode:https://developer.apple.com/download/all/?q=xcode

可能会需要AppID,创建一下即可 https://www.bkqs.com.cn/content/zn269wypy.html

下载需要注意:需要和自己的系统版本号对应(幸亏使用的公司流量,不然哭死.....,下错两次,用了30G)

参考:https://www.codenong.com/js284cde739af1/ 查看版本对应

(2)下载后进行解压,安装即可,注意:需要从下载目录中移动到应用程序目录

(3)需要设置Xcode应用的Locations:Command Line Tools

2.Exception: No 10.12+ SDK found(参考:webRTC之macOS编译过程及问题解决

(1)先查看自己的SDK版本

xcrun --show-sdk-version

 

(2)修改.gn文件 

vi .gn

(3)还需要修改python脚本/Users/liudie/ws/webrtc-proj/webrtc/src/build/mac/find_sdk.py,否则还是无法找到,因为脚本默认还去去找10.xx

3.使用gn来生成构建脚本:gn gen out/Release "--args=is_debug=false"

4.执行ninja -C out/Release,进行编译构建

可能出现下面错误:NSURLSession.h:500:168: error: expected ')'

这是最坑的地方,去谷歌搜索,也不能找到有用的信息,一般是让重新安装xcode,或者xcode-select选择版本,于是苦逼的下载多个xcode(几十个G啊,我去),也没有成功

发现调用的SDK全是macOS12.3库下的代码导致,于是去替换xcode的内建库

 

虽然替换后,可能导致xcode无法打开,但是好歹编译webrtc通过了....

 

(五)修改xcode的内建库macOS12.3变为自己需要的库

我们在前面看到,gn文件里面默认编译版本最小是10.12,所以我们最好下载高于10.12一丢丢的版本就行

下载地点在:https://github.com/YoungSunwh/MacOSX-SDKs

这里我选择MacOSX10.15,下载后进入xcode的SDK目录

cd /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/

将原本的sdks进行备份,变为sdks_bak,然后新建SDKs目录,将自己的库移动进去

最后记得重新将.gn和find_sdk.py修改回去(

标签:02,src,xcode,---,源码,https,gn,webrtc,liudie
From: https://www.cnblogs.com/ssyfj/p/16710161.html

相关文章

  • 什么是subsignature和return-type-substitutable
    subsignature什么是签名(signature)方法签名组成:方法名+参数列表(参数的类型、个数、顺序)Java语言层面规定的签名是不包含返回值类型的;JVM层面规定的签名是包含返回值类......
  • 【2022-10-24】前端Vue框架(一)
    前端发展介绍1.HTML(5)、CSS(3)、JavaScript(ES5、ES6):编写一个个的页面->给后端(PHP、Python、Go、Java)->后端嵌入模板语法->后端渲染完数据->返回数据给前端-......
  • [20221020]奇怪的增量备份.txt
    [20221020]奇怪的增量备份.txt--//生产系统做增量备份遇到的怪异问题,给奇葩的运维人员狠狠地涮了一把,做一个记录:1.环境:SYS@192.168.100.235:1521/orcl>@pr==========......
  • App - Appium系统Keyevent详解
    1.keyevent()键盘事件只限于安卓设备使用。fromappiumimportwebdriverimporttimedesired_caps={"platformName":"Android",#测试版本(IOS/Android)"de......
  • 力扣 114. 二叉树展开为链表-原地算法(O(1) 额外空间)详解
    114.二叉树展开为链表给你二叉树的根结点 root ,请你将它展开为一个单链表:展开后的单链表应该同样使用 TreeNode ,其中 right 子指针指向链表中下一个结点,而......
  • 2022/10/24 总结
    写在最前面今天考试首先是时间安排不很合理。花了相对较多的时间来推T2,以至于没有时间检查其他题的暴力。以后考试如果有时间就把想到的思路尽量都写一下(比如今日T1,思......
  • 实用的C语言IDE——Dev-cpp 安装
    Dev-cpp安装安装包(百度网盘)链接:https://pan.baidu.com/s/1cf8v5uWoZo4TiXJi_XrecA?pwd=yxxx提取码:yxxx 原网站网站可以下载,可能会很慢,但是跟百度网盘比其实大同小异......
  • 故事 --- Linux和UNIX之间的那些爱恨与情仇
     Linux和UNIX具体有哪些关系及区别?UNIX与Linux之间的关系是一个很有意思的话题。在目前主流的服务器端操作系统中,UNIX诞生于20世纪60年代末,Windows诞生于2......
  • Codeforces Round #402 (Div. 1) 题解(待续)
    AStringGame#include<bits/stdc++.h>usingnamespacestd;#define#define#define#define#define#define#define#define#define#define#define#define#define#define#defin......
  • 中国(北方)大学生程序设计训练赛(第一周)(Problem E: Water Problem-矩阵快速幂)
    已知f(1),f(2),n,f(n+1)=f(n)+f(n-1)+sin(n*Pi/2),(n>=2)求f(n)矩阵快速幂,周期乘4个矩阵#include<cstdio>#include<cstring>#include<cstdlib>#include<algorithm>#incl......