[email protected]第四章@编译Mac&IOS版@V1.0.0



驾驭开源库WebRTC

第四章-编译Mac&iOS版

作者:adam
鸣谢:老张

日期:2015-4-6

版本:1.0.0

欢迎转载,有问题反馈Q:2780113541,尽量完善系列教程。

depot_tools代理设置参考老张《史上最牛逼的墙内下载webrtc代码说明_20150401》

0、官方源码svn自2015-3-24已迁至谷歌git

一些使用svn地址的教程已不适用或需改进

1、部署http(s)转sock5代理,具体参考第一章

Shadowsocks:代理地址
127.0.0.1:1080

Privoxy:代理地址
127.0.0.1:8118

2、编译环境准备

MacOS X 10.9.5主机或虚拟机一台,安装Xcode6

本人工作区为$HOME,保证剩余空间有10G以上

3、下载工具准备

cd$HOME

gitconfig --global http.proxy http://127.0.0.1:8118

gitconfig --global https.proxy https://127.0.0.1:8118

gitclone https://chromium.googlesource.com/chromium/tools/depot_tools.git

4、设置下载工具路径至环境变量

echo‘export PATH=$HOME/depot_tools/:$PATH‘ >> ~/.bash_profile

source~/.bash_profile

5、下载工具代理设置以及下载webrtc

vi$HOME/depot_tools/http_proxy.boto,内容如下:

[Boto]

proxy= 127.0.0.1

proxy_port= 8118

设置环境变量,如新开终端则需重新设置

exporthttp_proxy=http://127.0.0.1:8118

exporthttps_proxy=https://127.0.0.1:8118

gitconfig --global http.proxy http://127.0.0.1:8118

gitconfig --global https.proxy https://127.0.0.1:8118

exportPATH=$HOME/depot_tools/:$PATH

exportNO_AUTH_BOTO_CONFIG=$HOME/depot_tools/http_proxy.boto

mkdir$HOME/webrtc_ios

cd$HOME/webrtc_ios

exportGYP_DEFINES="OS=ios"

首次下载输入下载命令:

fetchwebrtc_ios

等待几个G下载完成,最好没报错。

报错说明网络或上边代理设置存在问题,排除问题然后执行如下命令:

下载代码:

gitpull或gitfetch

下载依赖项生成编译文件:

gclientsync

6、编译webrtc

以iOS平台示例,设置环境变量:

exportGYP_CROSSCOMPILE=1

exportGYP_DEFINES="OS=ios target_arch=arm arm_version=7"

exportGYP_GENERATOR_FLAGS="output_dir=out_ios"

exportGYP_GENERATORS=ninja

执行:

cd$HOME/webrtc_ios/src

webrtc/build/gyp_webrtc

等待工程文件生成完毕……

编译:

ninja-C out_ios/Debug-iphoneos

其他平台编译参考:http://www.webrtc.org/native-code/ios

---------------------------进阶-----------------------------------

1、代码和依赖项更新

cd$HOME/webrtc_ios

exportGYP_DEFINES="$GYP_DEFINES OS=ios"

同步下载源码:

gitpull或gitfetch

同步下载依赖项并根据GYP_GENERATORS的设置生成编译文件:

gclientsync

只同步下载依赖项不生成编译文件:

gclientsync --nohooks

只根据GYP_GENERATORS的设置生成编译文件:

gclientrunhooks

2、如果python库报错,更换python新版本

_bsddb啥的,那是因为mac自带的python库有问题

手动更新python,我用的是2.7.9
pkg,10.6+的系统可以装。

https://www.python.org/ftp/python/2.7.9/python-2.7.9-macosx10.6.pkg

安装好,然后执行

sudo rm /usr/bin/pydoc

sudo rm /usr/bin/python

sudo rm /usr/bin/pythonw

sudo rm /usr/bin/python-config

至此旧python连接符删除完毕

新开终端输入python,显示2.7.9即为OK,CTRL+D退出。

3、使用xcode编译

新版webrtc在OSX下使用Xcode调ninja来编译

新开终端,输入:

cd$HOME/webrtc_ios/src

export GYP_GENERATOR_FLAGS="xcode_project_version=3.2xcode_ninja_target_pattern=All_iOS xcode_ninja_executable_target_pattern=AppRTCDemo|libjingle_peerconnection_unittest|libjingle_peerconnection_objc_testoutput_dir=out_ios"

exportGYP_GENERATORS="ninja,xcode-ninja"

webrtc/build/gyp_webrtc

然后可以在src目录中找到all.ninja.xcodeproj打开编译即可。

另外src下还有另外两个工程,一个是作为索引sources_for_indexing.xcodeproj,一个是all.ninja.xcworkspace,xcode打开就有warning和error,以后再说吧,有知道解决办法的朋友可以告诉我。

更多设备请参考:

http://www.webrtc.org/native-code/ios

时间: 2024-10-03 00:39:43

[email protected]第四章@编译Mac&IOS版@V1.0.0的相关文章

[email protected]第三章@编译Android版@V1.0.0

 驾驭开源库WebRTC 第三章-编译Android版 作者:adam 鸣谢:老张.aaalaniz 日期:2015-4-6 版本:1.0.0 欢迎转载,有问题反馈Q:2780113541,尽量完善系列教程. depot_tools代理设置参考老张<史上最牛逼的墙内下载webrtc代码说明_20150401> 编译定制参考aaalaniz的脚本: https://github.com/pristineio/webrtc-build-scripts/blob/master/android/b

newLISP C++编译示范工程cppwizard v1.2.0发布

项目代码在gitlab.com上 [email protected]:newlisp/cppwizard.git 该项目包含了两个工程,一个是console,普通的C++ 11工程,另一个是cppcms_base,是基于cppcms的web工程. 注意,默认配置的是clang编译器,cppcms库需要先安装.newLISP显然是需要事先安装的.目前仅支持linux系统. 每个工程目录下都有一个builder目录,编译时只需要运行./rebuild.lsp即可. 在builder目录下有一个配置文

android驱动开发第三、四章读书笔记

第三章讲解了git及git操作的基本命令 1.git是一款免费.开源的分布式版本控制系统,符合linux的开源思想,且相对于svn cvs等,git有自己的优势,且广受开发者欢迎 2.git的安装: apt-get install git apt-get install git-doc git-svn apt-get install git-email git-gui gitk 3.常见命令: man git—checkout   /  git help git-checkout    查看gi

MiS603开发板 第四章 流水灯实验

作者:MiS603开发团队 日期:20150911 公司:南京米联电子科技有限公司 论坛:www.osrc.cn 网址:www.milinker.com 网店:http://osrc.taobao.com EAT博客:http://blog.chinaaet.com/whilebreak 博客园:http://www.cnblogs.com/milinker/ MiS603开发板 第四章 流水灯实验 关于流水灯,网上有太多的例子了.其实只要掌握上面分频计数的技巧,设计流水灯是件极其简单的事情.从

第四章 shell学习之sed命令和awk编程

sed命令 sed只是对缓冲区中原始文件的副本进行编辑,不改变源文件,所以要保存则要重定向到另一个文件 sed三种方式: 1.sed [选项] 'sed命令' 输入文件 2.sed [选项] -f sed脚本文件 输入文件 3../sed脚本文件 输入文件 其中3的sed脚本文件要以#! bin/sed -f等开头 选项: -n 不打印所有行到标准输出,默认先打印匹配的再打印所有 -e 关联多个sed命令 -f 调用sed脚本文件 定位文本: x x为指定行号 x,y 从x到y行 /patter

【书评:Oracle查询优化改写】第四章

[书评:Oracle查询优化改写]第四章 BLOG文档结构图 一.1 导读 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~: ① check的特殊用法 ② sql优化中使用merge语句代替update语句(重点) 本文如有错误或不完善的地方请大家多多指正,ITPUB留言或QQ皆可,您的批评指正是我写作的最大动力. 一.2 实验环境介绍 目标库:11.2.0.3  RHEL6.5 一.3 前言 前3章的链接参考相关连接: [书评:Orac

apue第四章 文件和目录

函数stat,fstat,fstatat, lstat #include <sys/stat.h> int stat(const char *restrict pathname, struct stat *restrict buf); int fstat(int fd, struct stat *buf); int lstat(const char *restrict pathname, struct stat *restrict buf); int lstat(int fd, const c

把NSString *[email&#160;protected]&quot;2013 年 05 月 05 日&quot;;以2013-05-05输出

#import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { NSString *[email protected]"2013 年 05 月 05 日"; NSRange strc=NSMakeRange(0, 4); NSRange strc1=NSMakeRange(7, 2); NSRange strc2=NSMakeRange(12, 2)

23_Shell语言————位置变量([email&#160;protected]、$、$#、shift)

首先来看一个例子:计算100以内所有奇数的和以及所有偶数的和:分别显示之: [[email protected]]# vim odd_even.sh #!/bin/bash # EvenSum=0 OddSum=0   for I in {1..100}; do         if [ $[$I%2] -eq 0 ]; then                 EvenSum=$[$EvenSum+$I]         else                 OddSum=$[$OddSu