Windows下编译WebRTC过程 -----包含最新版本webrtc同步!

[置顶] Windows下编译WebRTC过程

转自: http://blog.csdn.net/sxwyf248/article/details/7060386
 
文中所有安装文件,都已经打包!见本人资源!

1. 下载Google Depot Tools,这是Google 在 Chromium 中就开始使用的分发工具。

地址:https://sites.google.com/a/chromium.org/dev/developers/how-tos/depottools

直接下载 depot_tools.zip 并解压即可,将其目录(gclient所在路径)添加到“环境变量|系统变量|Path”中。

2. 安装GIT工具,下载并安装msysgit、Tortoisegit:

msysgit: http://code.google.com/p/msysgit/downloads/list

Tortoisegit: http://code.google.com/p/tortoisegit/downloads/list

选择适合自己系统的版本,下载并安装(注:Tortoisegit只是一个GUI,必须安装msysgit。)把msysgit中bin目录(默认为“C:/ProgramFiles/Git/bin”)手动添加到系统环境变量Path中。Tortoisegit安装时会找到Git目录并自动配置好。

3. 安装VisualStudio 2008,打上Service Pack1补丁包(也可以安装VisualStudio 2010,只是后面的编译过程会稍微麻烦一些)。

4. 安装Microsoft SDK 7.1。确保Lib目录和Include目录在VisualStudio中设置好:

MSVC|Tools|Options|Projects and Solutions|VC++Directories (e.g. C:\Program Files\Microsoft SDKs\Windows\v7.1\Lib).

5.安装Microsoft DirectX SDK (June 2010),在“MSVC|Tools|Options|Projects and Solutions|VC++Directories”保证Include目录“$(DXSDK_DIR)include” 和 Lib目录“$(DXSDK_DIR)lib\x86”已被添加。

注意:DirectX的“Include”目录要出现在搜索路径的第一个,否则可能会出现问题。

6. 安装Python2.X版本,将Python安装目录添加到系统环境变量Path中。

在“MSVC|Tools|Options|Projects and Solutions|VC++Directories|Executable files”中添加Python安装目录(e.g. C:\Python27).

7. 创建一个工作目录,例如“webrtc”,在命令提示符里进入该目录。

在命令提示符下运行如下命令,获取WebRTC的源码:

[plain] view plain copy print ?
  1. $ gclient confighttp://webrtc.googlecode.com/svn/trunk
  2. $ gclient sync --force
$ gclient confighttp://webrtc.googlecode.com/svn/trunk
$ gclient sync --force

或者:

[plain] view plain copy print ?
  1. $ gclient.bat confighttp://webrtc.googlecode.com/svn/trunk
  2. $ gclient.bat sync --force
$ gclient.bat confighttp://webrtc.googlecode.com/svn/trunk
$ gclient.bat sync --force

这时会自动先安装subvison和其他必须的环境,其中“sync”命令还能创建开发环境(Linux:make, OSX:XCode, Windows: Visual Studio),如我们这里最关心的是 MSVisual Studio 的解决方案(trunk/webrtc.sln)。我们也可以手工通过下面的命令手工生成开发环境:

[plain] view plain copy print ?
  1. $ gclient runhooks --force
$ gclient runhooks --force

如果需要指定 MS Visual Studio 的版本,请在“gclient”前先如下调用:

[plain] view plain copy print ?
  1. set GYP_MSVS_VERSION=2008
set GYP_MSVS_VERSION=2008

源码目录下应该已经含有webrtc.sln,用 Visual Studio 打开即可,编译的时候可能会有些小问题,应该都是目录相关的,按照自己的环境重新设定一下即可。例如我这里按下面所指改动有问题的工程即可,“MSVC|Tools|Options|Projects and Solutions|VC++Directories”:

可执行文件:

[plain] view plain copy print ?
  1. C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin
  2. C:\Python27
  3. C:\Program Files\Microsoft DirectX SDK (June2010)\Utilities\bin\x86
C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin
C:\Python27
C:\Program Files\Microsoft DirectX SDK (June2010)\Utilities\bin\x86

包含文件:

[plain] view plain copy print ?
  1. C:\Program Files\Microsoft DirectX SDK (June 2010)\Include
  2. C:\Program Files\Microsoft SDKs\Windows\v7.1\Include
C:\Program Files\Microsoft DirectX SDK (June 2010)\Include
C:\Program Files\Microsoft SDKs\Windows\v7.1\Include

库文件:

[plain] view plain copy print ?
  1. C:\Program Files\Microsoft SDKs\Windows\v7.1\Lib
  2. C:\Program Files\Microsoft DirectX SDK (June 2010)\Lib\x86生成的可执行文件位于“\trunk\Debug”下,如“peerconnection_server.exe”和“peerconnection_client.exe”。
C:\Program Files\Microsoft SDKs\Windows\v7.1\Lib
C:\Program Files\Microsoft DirectX SDK (June 2010)\Lib\x86生成的可执行文件位于“\trunk\Debug”下,如“peerconnection_server.exe”和“peerconnection_client.exe”。

也可以使用HTML的测试页面(trunk/peerconnection/samples/server/server_test.html) 来连接服务器。当只有一个peerconnection_client实例运行时启用lookback可以建立一个与本地和自己的语音/视频会话。

参考文档:

1. http://www.webrtc.org/reference/getting-started

2. http://blog.foolbear.com/2011/06/google-webrtc-for-windows-32bit.html

3. http://white313.blog.163.com/blog/static/2102620116314827580/

 

这个方法同步旧版本的可以通过!~但是新版本的webrtc在生成工程的时候会出现错误!~新版本webrtc最新版本生成如下:

 

当前日期:2014/2/26

最新版本webrtc源代码在windows上的编译方法


主要是生成vs工程这一步失效了,现在生成工程,需要set GYP_GENERATORS=msvs 以及call python trunk/webrtc/build/gyp_webrtc -G msvs_version=2010


需要准备的软件有,git,svn,python,gyp


1.下载安装git和svn,并加入到path环境变量


2.下载depot_tools
git clone https://chromium.googlesource.com/chromium/tools/depot_tools


3.下载python
git clone http://git.chromium.org/chromium/deps/python_26.git
或者svn checkout from
https://src.chromium.org/svn/trunk/tools/third_party/python_26/
python执行路径加入到path环境变量,因为编译的过程中需要这东西


4.下载gyp,gyp是python脚本
主页https://code.google.com/p/gyp/
svn checkout http://gyp.googlecode.com/svn/trunk/ gyp-read-only


5.安装gyp到python
在gyp目录下面,执行python setup.py install


6.配置
所需要的软件都下载完了,下面需要配置一下depot_tools,调整一下目录结构
复制git目录到depot_tools\git_bin
必须:复制python目录到depot_tools\python_bin
复制svn的bin目录到depot_tools\svn_bin


新建depot_tools\python.bat
内容为:(depot_tools\bootstrap\win\python.new.bat复制出来也行,注意看需要修改的哟)

[plain] view plain copy print ?
  1. setlocal
  2. set PATH=%~dp0python_bin;%PATH%
  3. "%~dp0python_bin\python.exe" %*
setlocal
set PATH=%~dp0python_bin;%PATH%
"%~dp0python_bin\python.exe" %*





注意,svn和git可以不复制到depot_tools,但是python必须复制过来,如果svn和git没有复制过来,那请将这两个执行路径加入到path环境变量中
如果不想加入到path中,就复制到depot_tools并且建立depot_tools\svn.bat,depot_tools\git.bat写法同python.bat


7.下载webrtc源代码,并生成工程
网上讲使用命令行执行gclieng xxxx一类的命令来下载更新webrtc,在windows上你会死得很惨的,会不停地下载git,以及svn,不知道这次depot_tools更新后,是否还会有这问题,我试着修改depot_tools,但是没有成功,太费时间了
于是,你新建一个bat文件,与depot_tools处在同一目录下面
bat中写入以下内容,并且执行,执行完以后,trunk为webrtc的源代码目录,
找个快点的慢慢下载吧,
下载下来的,不只是源代码,还有一些测试资源.十分巨大,以G为单位 .


[plain] view plain copy print ?
  1. set PATH=%~dp0depot_tools;%PATH%
  2. call python depot_tools\gclient.py config https://webrtc.googlecode.com/svn/trunk
  3. call python depot_tools\gclient.py sync --force
  4. set GYP_GENERATORS=msvs
  5. call python trunk/webrtc/build/gyp_webrtc -G msvs_version=2010
set PATH=%~dp0depot_tools;%PATH%
call python depot_tools\gclient.py config https://webrtc.googlecode.com/svn/trunk
call python depot_tools\gclient.py sync --force
set GYP_GENERATORS=msvs
call python trunk/webrtc/build/gyp_webrtc -G msvs_version=2010




最后一行生成vs工程


如果执行过程中不动,并且显示如下:
________ running 'download_from_google_storage --directory --recursive --num_thr
eads=10 --no_auth --bucket chromium-webrtc-resources trunk/resources' in 'G:\pro
ject\google\webrtc20140224'


这正在下载资源,看下你的宽带占用,就知道正在下载。


8.编译
不建议使用vs2008来编译,因为有些测试工程,不能编译通过,是因为stl版本不对的原因,建立使用vs2010及以上版本.
编译过程中需要的sdk7,direct sdk,自己下载去


我个人比较懒,喜欢使用命令行来编译,我的命令行如下
编译脚本 autocompile10.bat,调用方法call autocompile10 trunk\all.sln Debug



[plain] view plain copy print ?
  1. @echo off
  2. set _devenv="D:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\devenv.com"
  3. set _solution_file="%~dp0%1"
  4. echo ====================================== >>"%2_Results.log"
  5. echo [%DATE% %Time%] Start compile sequence >>"%2_Results.log"
  6. echo %_solution_file% >>"%2_Results.log"
  7. %_devenv% %_solution_file% /build "%2|Win32" /Out "%2_Results.log"
  8. if not %errorlevel% == 0 echo stop!!! %_solution_file% failed! Error: %errorlevel% >>"%2_Results.log"
  9. if %errorlevel% == 0 echo %_solution_file% compiled successful >>"%2_Results.log"
  10. if not %errorlevel% == 0 pause
  11. echo [%DATE% %Time%] Finished compile sequence >>"%2_Results.log"
  12. echo ====================================== >>"%2_Results.log"
  13. echo +>>"%2_Results.log"
  14. echo +>>"%2_Results.log"
  15. echo +>>"%2_Results.log"
@echo off


set _devenv="D:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\devenv.com"
set _solution_file="%~dp0%1"


echo ====================================== >>"%2_Results.log"
echo [%DATE% %Time%] Start compile sequence >>"%2_Results.log"
echo %_solution_file% >>"%2_Results.log"


%_devenv% %_solution_file% /build "%2|Win32" /Out "%2_Results.log"


if not %errorlevel% == 0 echo stop!!! %_solution_file% failed!   Error: %errorlevel% >>"%2_Results.log"
if %errorlevel% == 0 echo %_solution_file% compiled successful >>"%2_Results.log"
if not %errorlevel% == 0 pause


echo [%DATE% %Time%] Finished compile sequence >>"%2_Results.log"
echo ====================================== >>"%2_Results.log"
echo +>>"%2_Results.log"
echo +>>"%2_Results.log"
echo +>>"%2_Results.log"




编译中需要注意,
如果你下次打开电脑,再次编译的时候,出现错误,什么什么找不到,请执行webrtc源代码,\trunk\third_party\cygwin\setup_mount.bat





备注:
build for android http://www.webrtc.org/reference/getting-started
$ echo "target_os = ['android', 'unix']" >> .gclient
$ gclient sync --nohooks
$ cd trunk
$ source ./build/android/envsetup.sh
$ JAVA_HOME=

你可能感兴趣的:(C++)