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.