webrtc所有平臺下載編譯步驟詳細說明

1、安裝depot tools

Windows
國外下載:https://storage.googleapis.com/chrome-infra/depot_tools.zip
下載完把壓縮包解壓蚊惯,然后把解壓目錄加入PATH環(huán)境變量
Linux(Android)/Mac(IOS)
安裝git
國外:git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
國內(nèi):git clone https://source.codeaurora.org/quic/lc/chromium/tools/depot_tools
把depot_tools目錄加入

PATH:export PATH=`pwd`/depot_tools:"$PATH"

2.安裝依賴軟件

Windows
a薪铜、系統(tǒng)locale最好設(shè)置成English,就是控制面板里面的Region.
b、安裝”Visual Studio 2015 Update 2“,其他版本都不受官方支持。
c逮走、操作系統(tǒng)必須是Windows 7 x64及以上版本,x86操作系統(tǒng)都不支持今阳。
d师溅、安裝VS2015時必須有下列組件:
?Visual C++, which will select three sub-categories including MFC
?Universal Windows Apps Development Tools > Tools
?Universal Windows Apps Development Tools > Windows 10 SDK (10.0.10586)
e、新開個cmd中運行set DEPOT_TOOLS_WIN_TOOLCHAIN=0盾舌,之后所以腳本都在這個cmd中運行
f墓臭、編譯是用ninja而不是VS!
Linux:看后面
Android
安裝Java OpenJDK:

$ sudo apt-get install openjdk-7-jdk
$ sudo update-alternatives --config javac
$ sudo update-alternatives --config java
$ sudo update-alternatives --config javaws
$ sudo update-alternatives --config javap
$ sudo update-alternatives --config jar
$ sudo update-alternatives --config jarsigner

Mac(IOS)
安裝最新XCode

3.下源碼

先創(chuàng)建目錄

mkdir webrtc-checkout
cd webrtc-checkout

Windows

fetch --nohooks webrtc
gclient sync

Linux

export GYP_DEFINES="OS=linux"
fetch --nohooks webrtc_android
gclient sync
./build/install-build-deps.sh

Android

export GYP_DEFINES="OS=android"
fetch --nohooks webrtc_android
gclient sync
./build/install-build-deps.sh

Mac

export GYP_DEFINES="OS=mac"
fetch --nohooks webrtc_ios
gclient sync

IOS

export GYP_DEFINES="OS=ios"
fetch --nohooks webrtc_ios
gclient sync

4妖谴、生成ninja項目文件

Windows/Linux
方式一:使用gn生成:
生成debug版ninja項目文件:gn gen out/Default
生成release版ninja項目文件:gn gen out/Default --args='is_debug=false'
清空ninja項目文件:gn clean out/Default

方式二:使用gyp生成(已過期的方式窿锉,但是目前還可以用)
python webrtc/build/gyp_webrtc.py
Android
使用gn生成:gn gen out/Default --args='target_os="android" target_cpu="arm"'
生成ARM64版:gn gen out/Default --args='target_os="android" target_cpu="arm64"'
生成32位 x86版:gn gen out/Default --args='target_os="android" target_cpu="x86"'
生成64位 x64版:gn gen out/Default --args='target_os="android" target_cpu="x64"'
Mac:
使用gn生成:gn gen out/Debug-mac --args='target_os="mac" target_cpu="x64" is_component_build=false'
IOS
生成ARM版:gn gen out/Debug-device-arm32 --args='target_os="ios" target_cpu="arm" is_component_build=false'
生成ARM64版:gn gen out/Debug-device-arm64 --args='target_os="ios" target_cpu="arm64" is_component_build=false'
生成32位模擬器版:gn gen out/Debug-sim32 --args='target_os="ios" target_cpu="x86" is_component_build=false'
生成64位模擬器版:gn gen out/Debug-sim64 --args='target_os="ios" target_cpu="x64" is_component_build=false'

ios編譯

#!/bin/sh
#armv32
gn gen out_ios32 --args='target_os="ios" target_cpu="arm" is_component_build=false' --ide=xcode
ninja -C out_ios32 AppRTCMobile
#armv64
gn gen out_ios64 --args='target_os="ios" target_cpu="arm64" is_component_build=false' --ide=xcode
ninja -C out_ios64 AppRTCMobile

mac編譯

gn gen out/Debug --ide=xcode --args='is_debug=true' --mac_deployment_target=10.10 --rtc_include_tests=true
gn gen out/Release --ide=xcode --args='is_debug=false' --mac_deployment_target=10.10 --rtc_include_tests=true

拷貝

for i in `find /Users/zf/webrtc1128/webrtc-checkout/src/out_ios32 -name "lib*.a"`
do
echo $i
cp $i ./out_ios32/
done
libtool -static -v -o out_ios32/libwebrtc32.a out_ios32/*.a
strip -S -X out_ios32/libwebrtc32.a
for i in `find /Users/zf/webrtc1128/webrtc-checkout/src/out_ios64 -name "lib*.a"`
do
echo $i
cp $i ./out_ios64/
done
libtool -static -v -o out_ios64/libwebrtc64.a out_ios64/*.a
strip -S -X out_ios64/libwebrtc64.a

5.編譯源碼

Windows/Linux/Android/Mac/IOS:

ninja -C out/Default

好了,這樣就編譯出來所有相關(guān)的庫和測試程序膝舅。
生成vs工程windows
1.生成VS項目文件

set DEPOT_TOOLS_WIN_TOOLCHAIN=0
set GYP_GENERATORS=msvs-ninja,ninja
set GYP_MSVS_VERSION=2015 (這里是2013會出現(xiàn)問題嗡载,生成的文件缺失很多)

生成VS2013項目文件(推薦使用)

gn gen out/Default –ide=vs2013

生成VS2015項目文件

gn gen out/Default –ide=vs2015
gn gen out/Default -ide=vs2015 --args="is_debug=true is_component_build=true target_cpu=\"x86\""
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市仍稀,隨后出現(xiàn)的幾起案子洼滚,更是在濱河造成了極大的恐慌,老刑警劉巖技潘,帶你破解...
    沈念sama閱讀 218,284評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件遥巴,死亡現(xiàn)場離奇詭異,居然都是意外死亡享幽,警方通過查閱死者的電腦和手機铲掐,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,115評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來值桩,“玉大人摆霉,你說我怎么就攤上這事。” “怎么了携栋?”我有些...
    開封第一講書人閱讀 164,614評論 0 354
  • 文/不壞的土叔 我叫張陵搭盾,是天一觀的道長。 經(jīng)常有香客問我刻两,道長,這世上最難降的妖魔是什么滴某? 我笑而不...
    開封第一講書人閱讀 58,671評論 1 293
  • 正文 為了忘掉前任磅摹,我火速辦了婚禮,結(jié)果婚禮上霎奢,老公的妹妹穿的比我還像新娘户誓。我一直安慰自己,他們只是感情好幕侠,可當我...
    茶點故事閱讀 67,699評論 6 392
  • 文/花漫 我一把揭開白布帝美。 她就那樣靜靜地躺著,像睡著了一般晤硕。 火紅的嫁衣襯著肌膚如雪悼潭。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,562評論 1 305
  • 那天舞箍,我揣著相機與錄音舰褪,去河邊找鬼。 笑死疏橄,一個胖子當著我的面吹牛占拍,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播捎迫,決...
    沈念sama閱讀 40,309評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼晃酒,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了窄绒?” 一聲冷哼從身側(cè)響起贝次,我...
    開封第一講書人閱讀 39,223評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎彰导,沒想到半個月后浊闪,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,668評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡螺戳,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,859評論 3 336
  • 正文 我和宋清朗相戀三年搁宾,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片倔幼。...
    茶點故事閱讀 39,981評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡盖腿,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情翩腐,我是刑警寧澤鸟款,帶...
    沈念sama閱讀 35,705評論 5 347
  • 正文 年R本政府宣布,位于F島的核電站茂卦,受9級特大地震影響何什,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜等龙,卻給世界環(huán)境...
    茶點故事閱讀 41,310評論 3 330
  • 文/蒙蒙 一处渣、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧蛛砰,春花似錦罐栈、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,904評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至位仁,卻和暖如春柑贞,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背聂抢。 一陣腳步聲響...
    開封第一講書人閱讀 33,023評論 1 270
  • 我被黑心中介騙來泰國打工凌外, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人涛浙。 一個月前我還...
    沈念sama閱讀 48,146評論 3 370
  • 正文 我出身青樓康辑,卻偏偏與公主長得像,于是被迫代替她去往敵國和親轿亮。 傳聞我的和親對象是個殘疾皇子疮薇,可洞房花燭夜當晚...
    茶點故事閱讀 44,933評論 2 355

推薦閱讀更多精彩內(nèi)容