WebRTC编译详细介绍 (转)
WebRTC技术交流群:234795279
原文地址:http://blog.csdn.net/temotemo/article/details/7056581
WebRTC编译
本人环境:
操作系统:XP SP3
VS 2008
编译源码之前所需的工具
获取源码工具:
1、 首先需要安装获取源码的工具SVN(项目代码版本管理工具,Google也用这个)
TortoiseSVN 1.6.12
http://sourceforge.net/projects/tortoisesvn/
2、下载并安装msysgit和Tortoisegit
msysgit:http://code.google.com/p/msysgit/downloads/list
选择Git-1.7.4-preview20110204.exe,下载并安装
Tortoisegit:http://code.google.com/p/tortoisegit/downloads/list
选择适合自己系统的版本,下载并安装(注:Tortoisegit只是一个gui,必须安装msysgit)
Tortoisegit安装时会找到git目录并自动配置好。
把msysgit中bin目录手动添加到系统环境变量PATH中,比如我的目录是“D:/ProgramFiles/Git/bin”
3. 下载并安装Python,建议安装Python2.6,比如安装在C盘
安装将C:\Python26执行目录自动被添加入系统环境变量PATH中。
(WebRTC是用C++写的为什么要用到Python,因为WebRTC源码和depot_tools里面有很多.py的Python程序,用于配置项目,生成各种环境下的工程文件)
官方要求说明:
http://www.webrtc.org/reference/getting-started/prerequisite-sw
1、 Depot Tools
1. You'll need to have the depot tools installed:
https://sites.google.com/a/chromium.org/dev/developers/how-tos/depottools
2. You need git installed (needed for getting WebM source):
http://git-scm.com/
/*====================================================*/
好了,外部工具准备得差不多了
4. 下载并配置depot_tools
很多人都建议建立一个存放depot_tools的目录,command进入该目录
svn co http://src.chromium.org/svn/trunk/tools/depot_tools
这在Linux下面应该是要这样做的,不过在Windows系统下,我觉得这样做更方便一点:
http://src.chromium.org/svn/trunk/tools/depot_tools 填到URL of respository去,Checkout directory可以自己随便指定你要存盘的路径(建议存在不要有中文的路径,因为一会要添加到系统的PATH的),其他默认,然后点击OK,自动下载,就可以拿到depot_tools工具了。
重头戏来了!获取WebRTC源码:
源码网址为 http://webrtc.googlecode.com/svn/trunk/
5. 为了把源码抓下来,可以建立一个WebRTC的源码目录
比如D:\WebRTC
一般操作:(不推荐)
用DOS命令进入该目录,然后
svn checkout http://webrtc.googlecode.com/svn/trunk/
下载完成后, WebRTC下会得到一个默认名为trunk的文件夹,里头就是WebRTC源码了,只是源码而已,并没有编译的相应工程文件。
然后
>gclient config https://webrtc.googlecode.com/svn/trunk (要下载1个多G的文件,网速不好的,可以去玩一盘dota回来)
>gclient sync --force (同步项目文件)
> gclient runhooks --force (生产各种项目文件,像VS项目文件webrtc.sln文件,Linux的MakeFile文件)
等等…可是我发现很多尝试编译WebRTC的同学在DOS命令进入操作就出现了各种问题了、、、
比如:Installing subversion ...
[-] XMLHTTP 80072ee2: Cannot make HTTP request (操作超时
... Failed to checkout svn automatically.
Please visit http://subversion.tigris.org to download the latestsubversion clie
nt
before continuing.(这个是网络连接问题,多试几次)
F:\WEBRTC\webrtc>gclient.bat confighttps://webrtc.googlecode.com/svn/trunk
Installing python ...(这个是配置问题)
等等令人抓狂的问题。本来我们已经安装好了python、SVN了,怎么还需要Installing呢、、、而且会让你等很久,郁闷吧!
推荐操作:
但是我这样做更好:
选择WebRTC文件夹,右击->

然后选择Git Bash,然后就直接进入该目录了:(如下图)

OK了,是时候获取WebRTC源码来生产工程了(如果单纯是为了获取WebRTC源码,完全可以按照获取depot_tools那样来操作,但是我们还要获取完源码后需要生产工程文件的)
第一步,拿源代码:svn checkout http://webrtc.googlecode.com/svn/trunk/ (源文件不是很大,几十M)
第二步,拿项目工程相关配置文件:gclient config https://webrtc.googlecode.com/svn/trunk (文件很大,1G多,要等很久哦)
第三步,与Google同步项目文件,获取最新工程:gclient sync --force
第四步,生产各平台的项目文件:gclient runhooks --force
注意:在第四步之前,如果在Windows平台下,需要安装Windows的DirectX SDK和SDK 7.1
下载地址:
SDK 7.1:
http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=8279
DirectX SDK:
http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=6812
再注意:
安装SDK 7.1的时候,一定要注意SDK 7.1的安装路径,因为在WebRTC项目在配置中有规定,配置文件在.. .\trunk\src\build 名为common.gypi 的文件
如图:

就是说Google默认SDK 7.1安装在C盘下,如果同学你不想安装在C盘下,那么就要修改一下这个配置文件了,不然的话,执行第四步的时候就会出现各种warning问题的。
如果不想安装SDK,可以从这里下所依赖的文件:
svn co http://vsfiltermod.googlecode.com/svn/trunk/src/BaseClasses,然后把文件放置在这个路径:C:/ProgramFiles/Microsoft SDKs/Windows/v7.1/Samples/multimedia/directshow/baseclasses
如果你顺利完成以上四步的话,而且在第四步的时候没有出现什么问题的话,那么恭喜你,就可以在trunk目录下看到Windows系统平台下的webrtc.sln项目工程文件了。Linux的项目文件在trunk\build的install-build-deps.sh脚本。还有Mac OS和Android等等。。。
Linux平台需要安装的东西更多:
g++ (>= 4.2)
python (>= 2.4)
libasound2-dev
libpulse-dev
libjpeg62-dev
libxv-dev
libgtk2.0-dev
libexpat1-dev
For 32-bit builds on a 64-bit system:
lib32asound2-dev
ia32-libs
好了,本人是在VS 2008上研究的,打开webrtc.sln,然后生成解决方案,目前为止已经解决方案里有122个项目,音频引擎,视频引擎,还有很多测试代码,视频聊天测试,API测试,自动测试,VP8和H.264编码测试,声音测试,通道测试、、、等等,全部生成完成大概半个小时左右。。。、、、OK,Enjoy!
编译时要注意,解决方案的配置:
保证有如下配置:包含文件 DirectX SDK\Include和$(WindowsSdkDir)\include

库文件:DirectX SDK\Lib\x86 DirectX SDK\Lib SDKs\Windows\v7.1\Lib


以后有时间再和大家分享这些测试。
/==================================/
愚人愚见,欢迎拍砖,你的砖头是我的面包。
zengxijin@qq.com
/==================================/
WebRTC编译详细介绍 (转)的更多相关文章
- WebRTC编译具体介绍
WebRTC编译具体介绍--记录+转载 原文地址:http://blog.csdn.net/temotemo/article/details/7056581 WebRTC编译 本人环境: 操作系统:X ...
- 在vs2010中编译log4cxx-0.10.0详细方法(从下载、编译、解决错误详细介绍)
在vs2010中编译log4cxx-0.10.0详细方法(从下载.编译.解决错误详细介绍) http://blog.sina.com.cn/s/blog_a459dcf501013tbn.html
- _MSC_VER详细介绍
_MSC_VER详细介绍 转自:http://www.cnblogs.com/braver/articles/2064817.html _MSC_VER是微软的预编译控制. _MSC_VER可以分解为 ...
- php CGI、Fastcgi、PHP-FPM的详细介绍与之间的关系
以下PHP CGI.Fastcgi.PHP-FPM的一些信息归纳和汇总----->详细介绍与之间的关系 一:CGI是干嘛的?CGI是为了保证web server传递过来的数据是标准格式的 web ...
- Linux截屏工具scrot用法详细介绍
Scrot是Linux命令行中使用的截图工具,能够进行全屏.选取等操作,下面小编将针对Scrot截图工具的用法给大家做个详细介绍,通过操作实例来学习Scrot的使用. 在Linux中安装Scrot ...
- 【转载】硬盘MBR详细介绍
原文地址:http://blog.chinaunix.net/uid-15007890-id-106892.html 硬盘MBR详细介绍 硬盘是现在计算机上最常用的存储器之一.我们都知道,计 ...
- Java Annotation认知(包括框架图、详细介绍、示例说明)
摘要 Java Annotation是JDK5.0引入的一种注释机制. 网上很多关于Java Annotation的文章,看得人眼花缭乱.Java Annotation本来很简单的,结果说的人没说清楚 ...
- Android manifest之manifest标签详细介绍
AndroidManifest详细介绍 本文主要对AndroidManifest.xml文件中各个标签进行说明.索引如下: 概要PART--01 manifest标签PART--02 安全机制和per ...
- Ubuntu根目录下各文件夹的功能详细介绍
Ubuntu的根目录下存在着很多的文件夹,但你知道他们都存放着哪些文件呢?这些是深入了解Ubuntu系统必不缺少的知识,本文就关于此做一下介绍吧. /bin/ 用以存储二进制可执行命令文件. / ...
随机推荐
- OC和C++的混用1
//Objective-C类 /*在混用之前需要做一步非常重要的事:不是代码而是编译器选项,在做混合编译之前一定要把编译器的Compile Sources As选项改为Objective C++. 修 ...
- NOIP模拟赛 某种数列问题
众所周知,chenzeyu97有无数的妹子(阿掉!>_<),而且他还有很多恶趣味的问题,继上次纠结于一排妹子的排法以后,今天他有非(chi)常(bao)认(cheng)真(zhe)去研究一 ...
- centos7重启后/etc/resolv.conf 被还原解决办法
每次重启服务器后,/etc/resolv.conf文件就被自动还原了,最后发现是被Network Manager修改了. 查看Network Manager服务状态 systemctl status ...
- 局域网映射到公网-natapp实现
在开发时可能会有这样的需求: 需要将自己开发的机器上的应用提供到公网上进行访问,但是并不想通过注册域名.搭建服务器等等一系列繁琐的操作来实现. 例如:微信公众号的开发调试就需要用到域名访问本机项目. ...
- LeetCode(129) Sum Root to Leaf Numbers
题目 Given a binary tree containing digits from 0-9 only, each root-to-leaf path could represent a num ...
- Linux中同步与异步、阻塞与非阻塞概念以及五种IO模型
1.概念剖析 相信很多从事linux后台开发工作的都接触过同步&异步.阻塞&非阻塞这样的概念,也相信都曾经产生过误解,比如认为同步就是阻塞.异步就是非阻塞,下面我们先剖析下这几个概念分 ...
- Latex:插入伪代码
*本文属于转载. *转载链接:https://blog.csdn.net/lwb102063/article/details/53046265 目录 clrscode algorithm algori ...
- 《Scrum实战》第2次课【取得大家的支持】课后作业汇总
作业:<变革之心>读后感 孟帅: 2017-7-12http://www.cnblogs.com/mengshuai1982/p/7153985.html
- HashMap的C++实现
#include <iostream> #include <cstring> #include <string> typedef unsigned int SIZE ...
- git 强制回到以前版本
git reset dfd3e36a641340a0b86f811df869c4375fabeff2 --hard