http://white313.blog.163.com/blog/static/2102620116314827580/
在某篇对google敬仰的日志中,已经提到过WebRTC,具体介绍不不说了,网上一大摞,今天讲讲怎么编译WebRTC。
在项目源码中,并没有直接提供解决方案(sln)和工程文件,是因为WebRTC和Chromium一样,使用了depot_tools这个工具用来自动生成项目文件。Google也能搜索出一堆的编译方案,但基本上就是对https://sites.google.com/site/webrtc/reference/getting-started的翻译。其实还应该有几个前置步骤,由于depot_tools需要用到python,svn和git,所以必须安装这几个软件,如果没做的话,是无法正确得到工程文件进行编译的,下面是适合小白的完整步骤:
1. 下载安装svn客户端,例如TortoiseSVN 安装完后,svn执行目录自动被添加入系统环境变量PATH中。
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:/Program Files/Git/bin” 3. 下载并安装Python,建议安装Python2.6 安装后Python执行目录自动被添加入系统环境变量PATH中。
4. 下载并配置depot_tools 建立一个存放depot_tools的目录,command进入该目录 svn co http://src.chromium.org/svn/trunk/tools/depot_tools 下载后把depot_tools目录手动添加到系统环境变量PATH中
5. 建立WebRTC的源码目录 比如D:/WORK/OTHER/WebRTC/
6. 打开cmd,进入第5步建立的源码目录
7. 执行: gclient config https://webrtc.googlecode.com/svn/trunk 或者 gclient.bat config https://webrtc.googlecode.com/svn/trunk
8. 执行: gclient sync --force 或者 gclient.bat sync --force
9. 执行: gclient runhooks --force 或者 gclient.bat runhooks --force
10. 源码目录下应该已经含有webrtc.sln注:webrtc会用到Windows SDK 7.1,如果不想安装SDK,可以从这里下所依赖的文件:svn co http://vsfiltermod.googlecode.com/svn/trunk/src/BaseClasses,然后把文件放置在这个路径:C:/Program Files/Microsoft SDKs/Windows/v7.1/Samples/multimedia/directshow/baseclasses (感谢乐得思蜀的方案) 我的系统为Windows 7 32bit,不知为何在第8步只能执行gclient.bat sync --force才成功,直接执行gclient sync --force无法成功。 另外如果你只安装了Visual Studio 2010,那么在gclient sync --force执行到最后会提示"Do not know how to convert MSVS attribute UseOfMFC",可能对2010支持还不好,因为我系统里还有Visual Sduidio 2005,所以没有碰到这个问题,但是不用担心,因为最终的webrtc.sln照样会生成的,不影响看代码。 如果遇到git --version return 1错误,应该是git目录没配置到PATH环境变量中,配置好后重启机器。
---------------------------------------------------华丽的分割线------------------------------------------------------
以上即为Windows下面的步骤,下面提供Mac OS X上的步骤:1. 安装svn Mac OS X Leopard已经默认安装了svn
2. 安装git 从http://code.google.com/p/git-osx-installer 上下载最新安装包,安装即可
3. 安装python Mac OS X Leopard已经默认安装了Python 2.6.1
4. 下载并配置depot_tools 建立一个存放depot_tools的目录,command进入该目录 svn co http://src.chromium.org/svn/trunk/tools/depot_tools 下载后把depot_tools目录手动添加到系统环境变量PATH中: sudo vim /etc/paths 把depot_tools的目录写入paths,保存该文件
5、6、7、8、9步骤和windows上的操作步骤一样(第8步执行gclient sync --force)
10. 源码目录下应该已经有xcode的工程文件了。
注:设置环境变量后,需要重新打开命令行工具,否则当前命令行是找不到新添的环境变量的。
控制版本:
gclient runhooks --force
这样可以 变成 2008的版本
如果安装svn,python不成功:
regsvr32 %windir%\system32\zipfldr.dll
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/*************************************************For android************************************************/
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
http://blog.csdn.net/mahout_xb/article/details/7634007
OS: Ubuntu 10 x64
1.安装svn和git
sudo apt-get install subversion
sudo apt-get install git
2. 安装Depot Tools
下载 https://sites.google.com/a/chromium.org/dev/developers/how-tos/depottools
添加depottools的主目录到PATH
命令行输入gclient测试是否安装成功
3.安装android NDK和SDK
下载NDK和SDK,见android网站
并配置环境变量:
export ANDROID_SDK_ROOT=/usr/local/google/bin/android-sdk-linux
export ANDROID_NDK_ROOT=/usr/local/google/bin/android-ndk-r7
4.下载WebRTC的源代码
gclient config https://webrtc.googlecode.com/svn/trunk
gclient sync
5.安装依赖的库
进入webrtc源码,执行脚本:./build/install-build-deps.sh
6.编译
source ./build/android/envsetup.sh
gclient runhooks
修改Makefile:
ARFLAGS.target := crsT 以为ARFLAGS.target ?= crs
之所以这么做,是因为ar的选项T会带给.o文件带上绝对路经,在编译android test project时
就会报找不到.a文件的错误
make
7.编译android测试工程
1)生成.so
cd src/video_engine/main/test/android_test
ndk-build
2)将工程导入Eclipse
此时会发现Android.mk中的src/org/webrtc/videoengine文件夹不存在,
建立改文件夹,找到这些文件,并拷贝过来
3)生成apk
4)安装到android设备,就可以测试了!
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/*************************************************method 2************************************************/
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
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的源码:
$ gclient confighttp://webrtc.googlecode.com/svn/trunk
$ gclient sync --force
$ gclient confighttp://webrtc.googlecode.com/svn/trunk $ gclient sync --force
或者:
$ gclient.bat confighttp://webrtc.googlecode.com/svn/trunk
$ 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)。我们也可以手工通过下面的命令手工生成开发环境:
$ gclient runhooks --force
$ gclient runhooks --force
如果需要指定 MS Visual Studio 的版本,请在“gclient”前先如下调用:
set GYP_MSVS_VERSION=2008
set GYP_MSVS_VERSION=2008
源码目录下应该已经含有webrtc.sln,用 Visual Studio 打开即可,编译的时候可能会有些小问题,应该都是目录相关的,按照自己的环境重新设定一下即可。例如我这里按下面所指改动有问题的工程即可,“MSVC|Tools|Options|Projects and Solutions|VC++Directories”:
可执行文件:
C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin
C:\Python27
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
包含文件:
C:\Program Files\Microsoft DirectX SDK (June 2010)\Include
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
库文件:
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”。
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可以建立一个与本地和自己的语音/视频会话。
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
answer:
It seemed to me that /bin was not mounted anywhere in the cygwin
shell. Running third_party\cygwin\setup_mount.bat once helped.