驾驭开源库WebRTC
第二章-编译Windows版本
作者:adam鸣谢:老张
日期:2015-4-6
版本:1.0.0
欢迎转载,有问题反馈Q:2780113541,尽量完善系列教程。更新地址:https://github.com/wpc320/webrtc_doc.git
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、编译环境准备
Win主机或虚拟机一台,本人Win7x64,管理员账户登录。
安装好DXSDK june 2010、VS2013Update4(本人只装了MFC,占用8G左右)
本教程以c盘作为工作区,装完后保证剩余空间20G以上。
3、下载工具准备
下载depot_tools并解压至c:\
https://src.chromium.org/svn/trunk/tools/depot_tools.zip
设置 depot_tools代理 [推荐]
为了解决 depot_tools自身更新问题,为depot_tools增加代理支持,修改c:\depot_tools\bootstarp\win\get_file.js文件:
(1)改xml_http = newActiveXObject("MSXML2.ServerXMLHTTP");
为xml_http = newActiveXObject("MSXML2.ServerXMLHTTP.5.0");
(2)xml_http.open("GET", url,false); 前增加
xml_http.setProxy(2,"127.0.0.1:1080");或xml_http.setProxy(2, "127.0.0.1:8118");
4、设置下载工具路径至环境变量
计算机属性-》高级-》环境变量-》系统属性-》打开Path,最前边增加 C:\depot_tools;
管理员权限打开cmd,运行gclient自动更新工具,下载python、git、svn等等。
如报错说明FQ失败或以上设置失败。
5、下载工具代理设置以及下载webrtc
在c:\depot_tools下新建http_proxy.boto,内容如下:
[Boto]
proxy= 127.0.0.1
proxy_port= 8118
创建c:\webrtc,管理员权限打开cmd
cd c:\webrtc
设置下载工具代理环境变量:
sethttp_proxy=http://127.0.0.1:8118
sethttps_proxy=http://127.0.0.1:8118
设置下载工具git代理:
gitconfig --global http.proxy http://127.0.0.1:8118
或修改配置文件 %user_home%\.gitconfig [对特定仓库的话就是.git/config],增加:
[http]
proxy= http://127.0.0.1:8118
设置BOTO代理,解决download google storage失败问题:
setNO_AUTH_BOTO_CONFIG=C:\depot_tools\http_proxy.boto
设置不再次下载工具链:
setDEPOT_TOOLS_WIN_TOOLCHAIN=0
设置生成工程环境变量:
setGYP_GENERATORS=msvs-ninja,ninja
setGYP_MSVS_VERSION=2013
首次下载输入下载命令:
fetchwebrtc
等待几个G下载完成,最好没报错。
报错说明网络或上边代理设置存在问题,排除问题然后执行如下命令:
下载代码:
gitpull或gitfetch
下载依赖项生成编译文件:
gclientsync
6、更改系统区域设置
控制面板-》管理-》更改系统区域设置-》改为英语(美国)-》重启电脑
否则VS编译会报错c2220等等
7、打开c:\webrtc\src下的all.sln,编译all
如果没出过错,一次就编译成了,如果出错请检查前边那些设置有问题并重复gclient sync
确保下载完整,重新编译。
编译好的库和demo在src\out下面。
8、最好使用VS2013Update4编译
因为官网注明“Chromium requestsVS2013 for now”,而webrtc依赖chromium。VS2013、Xcode如今都是调用ninja的方式编译,但不影响调试。
ninja独立编译方法请自行搜索,或参考官网:
参考:http://www.webrtc.org/native-code/development
---------------------------进阶-----------------------------------
代码和依赖项更新
管理员权限打开cmd
cd c:\webrtc
setDEPOT_TOOLS_WIN_TOOLCHAIN=0
setGYP_GENERATORS=msvs-ninja,ninja
setGYP_MSVS_VERSION=2013
同步下载源码:
gitpull或gitfetch
同步下载依赖项并根据GYP_GENERATORS的设置生成编译文件:
gclientsync
只同步下载依赖项不生成编译文件:
gclientsync --nohooks
只根据GYP_GENERATORS的设置生成编译文件:
gclientrunhooks
2、VPS编译打包下载
如果使用的是WIN版VPS,整个WEBRTC是可以打包下来用的。
在WIN下,现在的all.sln使用ninja编译,ninja所需工程文件位于out。
先备份src下的out目录,然后编译测试通过后,生成的out目录会很大。
删掉out,用备份的out替换,打包(推荐7z),这样你就有份完整的原始包了
然后你可以配置个IIS,包放到C:\Inetpub\wwwroot,用支持续传的工具下载下来。
下不来就是网站有类型过滤,改个后缀为jpg,或者设置IIS的MIME类型。