目录
经过几番的挣扎,最终在win10环境下使用vs2017编译webrtc成功
需要使用vs2017开发者的控制台操作、使用管理员启动控制台
-
VPN的搭建
编译windows的代码需要VPN翻墙,shadowsock(只支持sock5协议的下载)不支持一些文件的下载,所以需要搭建pptpd服务在国外的阿里服务器上。
阿里云上开通硅谷的最便宜的服务器,云盘选择20G。如下配置就行,一小时6分钱
搭建VPN可以选择centos或者ubuntu,可以参考阿里云上的文章
云服务器 ECS Linux Ubuntu 服务器 VPN 配置示例
如何使用 CentOS 6 实例配置 PPTP VPN 连接
我使用的是ubuntu14.04 搭建的,搭建过程如果连接不上请设置log文件
1、修改/etc/ppp/options.pptpd中的nologfd,默认没有开,把nologfd注释掉
2、然后添加 logfile /var/log/pptpd.log(将nologfd改成这个,在这个日志里就可以查到pptpd日志)
3、修改后重启下pptpd服务,就可以了
最后如果windows连接不上的,可能需要使用arp -d -a 命令
以上,VPN即可用于linux也可以用于windows的连接,如果你能正常的访问google,搭建过程成功了大半。
-
代码的下载编译
安装 WebRTC 代码下载工具 depot_tools(Google),下载解压就行,最好在C盘根新建webrtc-checkout目录操作:
http://dev.chromium.org/developers/how-tos/install-depot-tools
安装vs2017,安装的时候需要选择:其他工具集中的visio studio扩展开发,否则gclient sync 会报错
安装win10SDK,如果vs2017没有选择安装的话需要安装,并设置环境变量
据说还要安装DXSDK_Jun10,我也不知道有没有用,反正我装了
设置环境变量:(因为我是从vs2015配置不行转的vs2017可能有些环境变量不需要也行)
GYP_DEFINES=target_arch=x64
GYP_GENERATORS=ninja,msvs-ninja
GYP_MSVS_VERSION=2017
DEPOT_TOOLS_WIN_TOOLCHAIN=0
//这个安装完就有了
DXSDK_DIR=C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\
//win10SDK环境
WindowsSdkDir=C:\Program Files (x86)\Windows Kits\10\
PAHT 加上win10SDK的x64 bin目录
C:\Program Files (x86)\Windows Kits\10\bin\10.0.17134.0\x64;
C:\webrtc_checkout\depot_tools;
配置完成后,使用gclient命令下载默认的工具,等出现gclient的用法就OK
在webrtc-checkout目录下新建webrtc目录进入,输入:fetch --nohooks webrtc 获取代码
输入gclient sync同步完成后
gn gen --ide=vs out/Debug //生成工程
ninja -C out/Debug //编译
以上基本编译完成。
最后在out/Debug目录下可以找到all.sln打开工程。
-
遇到的坑
整体的环境是下载的win10镜像,用vmware创建的虚拟机搭建的,分配的磁盘要够,整个搭建基于0开发环境的win10基础搭建。
不要使用win7,一开始使用的是win7上的vs2015搭建,需要自己安装win10SDK,最后也是编不过。
不要使用vs2015编译,如果是2015据说需要用vs2015 update 3才行,因为一开始装的就是vs2015,报了很多错误
如:
libvpx error C2718: '__m128i': actual parameter with requested alignment of 16 won't be aligned
libvpx sum_squares_sse2.c(108): error C2220: warning treated as error - no '
C2718: '__m128i': actual parameter with requested alignment of 16 won't be aligned
error C2228: left of '.data' must have class/struct/union
关于AssertionError 可以参考https://bugs.chromium.org/p/webrtc/issues/detail?id=7677 这地址,需要使用vs2017开发者的控制台操作
一些错误的解决地址
https://stackoverflow.com/questions/46023981/webrtc-not-building-for-windows-too
https://groups.google.com/a/chromium.org/forum/#!topic/chromium-dev/_W1qVmGGc4M
既然能翻墙了,出错了就google吧,方法总比困难多,哈哈哈哈