WebRtc编译好的vs2015源码,编译最新版webrtc源码和编译好的整个项目10多少个G

by admin on 2019年1月31日
  1. WebRtc编译好的vs2015源码,编译最新版webrtc源码和编译好的整个项目10多少个G。直白想看webrtc的源码,苦于FQ能力不难且所有编译进程耗时巨大,故求助于互连网。在互连网搜索许久编译好的Webrtc源码,好多本子下载下来总是报各样错误,万分失落。
  2. 皇天不负有心人,终于寻得一版可用的WebRtc源码。具体从哪个网站找的早已记不起来了,不过照旧感谢分享者。
  3. 共享给大家: 链接:
    密码: u37i
  4. 简短说一下:共享文件中七个文本,首个depot_tools解压缩,然后添加到环境变量。然后解压缩初叶编译webrtc代码
  5. 说下自家的编译环境:vs2015
  6. home88一必发 1
  7. home88一必发 2

  8. 时间不早了,下一步要起来研讨源码了。早先布署从PeerConnectionClient和server
    demo跑起。

前言

webrtc是谷歌(Google)收购并开源的一个支撑实时音摄像对话的技艺。
官网是:https://webrtc.org

OK,介绍就这么多。

编译最新版webrtc源码和编译好的方方面面项目10多少个G【分享】

 

参考编译最新版webrtc源码:

Git clone 

gclient
config  –name=src

set DEPOT_TOOLS_WIN_TOOLCHAIN=0
set GYP_MSVS_VERSION=2015
home88一必发,set GYP_GENERATORS=ninja,msvs-ninja
gclient sync
cd src
Python webrtc/build/gyp_webrtc.py

上图哈:

home88一必发 3

注:
1.depot_tools的采纳参考:
2.webrtc官方源码我copy到github上了:
3.webrtc编译好的整套项目自己传到百度云了:WebRtc编译好的vs2015源码,编译最新版webrtc源码和编译好的整个项目10多少个G。 (注:由于刚压缩好在上传中,有10多G,请稍等,等上传已毕后再下载)

 

———————— 2016-9-29加盟安装depot_tools表明(黑色字体:python和别的工具会在运转gclinet时自己下载安装) —————————————–

Install depot_tools

Chromium and Chromium OS use a package of scripts called depot_tools to manage checkouts and code reviews.  
The depot_tools package includes gclientgclgit-clrepo, and others.

Installing on Linux and Mac

  1. Confirm git and python are installed. git 2.2.1+ recommended. python 2.7+ recommended.
  2. Fetch depot_tools: 
    $ git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
  3. Add depot_tools to your PATH:
    $ export PATH=`pwd`/depot_tools:"$PATH"

    • Yes, you want to put depot_tools ahead of everything else, otherwise gcl will refer to the GNU Common Lisp compiler.
    • You may want to add this to your .bashrc file or your shell’s equivalent so that you don’t need to reset your $PATH manually each time you open a new shell.

Installing on Windows

Preamble

Chromium is mostly designed to be run using the native Windows tools and the Msys (Git for Windows) toolchain. Cygwin is not recommended, and likely things will fail in cryptic ways.

Instructions

  1. Download depot_tools.zip and decompress it.
  • Do not use drag-n-drop or copy-n-paste extract from Explorer, this will not extract the hidden ".git" folder which is necessary for depot_tools to autoupdate itself. You can use "Extract all…" from the context menu though.
  • Do not extract to a path containing spaces. If you do, gclient will produce the error "update_depot_tools.bat was not expected at this time" or similar.

Add depot_tools to the start (not end!) of your PATH:
With Administrator access:

  • Control Panel > System and Security > System > Advanced system settings
  • Modify the PATH system variable to include depot_tools

Without Administrator access:

  • Control Panel > User Accounts > User Accounts > Change my environment variables
  • Add a PATH user variable: C:\path\to\depot_tools;%PATH%

Run gclient from the cmd shell. The first time it is run, it will install its own copy of various tools. If you run gclient from a non-cmd shell, it may appear to run properly, but python, and other tools may not get installed correctly (while it should work fine from a msys bash shell, you may still trip over bugs from time to time).

  • If you see strange errors with the file system on the first run of gclient, you may want to disable Windows Indexing.
  • If you see errors like "The system cannot execute the specified program", try installing "Microsoft Visual C++ 2008 Redistributable Package".
  • If it complains that it can’t find python, make sure you don’t already have a .gclient file in the same directory.
  • After running gclient open a command prompt and type where python and confirm that the depot_tools python.bat comes ahead of any copies of python.exe. Failing to ensure this can lead to overbuilding when using gn – see crbug.com/611087

See also Howto: depot tools

————————2016-9-29加入安装depot_tools说明—————————————–

注:webrtc 源码编译须求自备梯子.

准备干活

假若不打算修改webrtc相关源码,提议不用去折腾编译那一个源码工程。
直接引用已经编译好的中心库(Maven或者Gradle):

认准官方渠道:(只示例Gradle情势的)

compile 'org.webrtc:google-webrtc:1.0.+'   // + 可以换成对应版本号

连锁版本可以在
https://bintray.com/google/webrtc/google-webrtc
那里询问,那些理应会频频更新。
PS:+替换的版本号一定要去地方网址里面查询是还是不是留存该版本。

有历史的民间渠道:

compile 'io.pristine:libjingle:11139@aar'

有关版本可以在
http://mvnrepository.com/artifact/io.pristine/libjingle
进行查询,当初翻新挺频仍,近年来两三年没更新了,权当个惦记吧。

获取源码

源码下载

即使想修改源码,恭喜您,你须求团结编译源码。
webrtc编译说起来,编译既艰巨又简单;困难在源码规模太大,国内同步代码频仍出难题,不难在于谷歌(Google)早已将混乱的编译进程整合成简单明了的编译脚本命令。
强调一点:上面的编译操作是基于Linux环境。

一、安装编译爱抚环境
webrtc的编译环境依赖于谷歌(Google)的编译环境,也就是 depot_tools。
很简短,就一个clone源码到本地

git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git

那边需求安装环境变量

export PATH=$PATH:/path/depot_tools  #在当前环境变量追加路径

注意:path是你depot_tools文件夹所在的地方,需求替换为科学的门路。

测试环境变量是还是不是布署成功:

which gn 或者 which gclient  #which指令会在环境变量设置的目录里查找执行文件

比方出口了面前配置的depot_tools文件夹地址,则是布局成功!

官网参考:http://commondatastorage.googleapis.com/chrome-infra-docs/flat/depot\_tools/docs/html/depot\_tools\_tutorial.html\#\_setting\_up

二、下载项目源码

1、准备干活
指定一个职位存放webrtc源码,尤其要求注意的是眼下硬盘存储空间须要不少于20GB。

mkdir webrtc
cd webrtc

2、代码同步

fetch --nohooks webrtc_android
gclient sync

其一大约会15-20GB的文本需求下载(版本持续迭代),同步速度取决于你的VPN给不给力。
3、重视环境布署(编译环境只需求实施三回)

cd src
./build/install-build-deps.sh

当源码下载完备后,执行环境布置脚本,会帮你检测并设置编译所急需的敬重库和工具。

安装 depot_tools

depot_tools是个工具包,里面包涵gclient、gcl、gn和ninja等工具。其中gclient是代码获取工具,它实质上是利用了svn和Git.

//todo install
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
修改 ~/.zshrc
export PATH=$PATH:~/work/depot_tools/depot_tools

本子编译

一、编译参数指定

gn gen out/build --args='target_os="android" target_cpu="arm" is_debug=false'

out/build : 编译生成文件的目录,随意指定
target_os : 编译目的平台 android ios 等
target_cpu : CPU架构平台 arm arm64 x86 x64等
is_debug : Release方式或者Debug方式

二、执行编译
是因为是全量编译,所以时间稍微有点长,看机器质量。

ninja -C out/build

生成Gradle项目文件

build/android/gradle/generate_gradle.py --output-directory $PWD/out/build \
--target "//examples:AppRTCMobile" --use-gradle-process-resources \
--split-projects --canary

举办已毕,可以在out/build/目录下会变动一个gradle的文本夹,使用Android
studio该gradle目录即可运行demo工程。

获取源码

创设源码目录 webrtc, fetch 执行之后将在 webrtc 目录中开创 src 目录, 而
src/webrtc 才是当真源码所在. 源码目录估算在 8G 左右大小.

mkdir webrtc && cd webrtc
linux : fetch --nohooks webrtc
android: fetch --nohooks webrtc_android
ios: fetch --nohooks webrtc_ios
gclient sync

Release版本

由于webrtc是不断在master分支开发的,所以大家二次开发webrtc最好基于稳定的release版本。
查找库上的release版本

git branch -r

然后checkout到对应的release版本

git checkout -b my_branch branch-heads/66  #切换到M66版本
gclient sync  #同步对应版本的代码

问题1:
万一搜索不到相应的release版本,那也许是地面源码历史太久远了(2015-3-24此前的版本)
亟需履行

gclient sync --with_branch_heads
git fetch origin

下一场查看 .git/config

fetch = +refs/branch-heads/*:refs/remotes/branch-heads/*

则解决难点。

问题2:
借使checkout了相比早的本子,例如branch-heads/5* 版本
履行 gclient sync 会报联手错误
是因为 depot_tools 的源码太新,导致与webrtc源码不匹配,可以将
depot_tools 工程恢复生机到与
webrtc目的release版本相近来期的工程源码来实行协同编译。

切换分支代码

鉴于 master 分支更新度频仍, 不便宜自身 patch 维护,
需求切换到指定版本分支.

cd src
gclient sync --with_branch_heads
git fetch
git checkout -b local_branch branch_heads/$branch
gclient sync

类型布局

是因为变化的gradle工程的源码并不是坐落一个职位,而且发散在webrtc各类文件夹中,可以将依次对应文件夹下的源码文件整合到一道。
java源码目录如下:

#android端demo工程源码
examples/androidapp/src  
#lib源码
modules/audio_device/android/java/src  
base/android/java/src  
rtc_base/java/src  
sdk/android/api 
sdk/android/src/java 
#so库,位于编译目录下
libjingle_peerconnection_so.so

PS:可以团结通过gradle文件的借助分析查看源码文件夹的引用路径。

编译

区分为 linux 平台, android 平台, ios 平台.

linux

在 ubuntu 16.04 完成编译, 须求注意 webrtc 内部脚本仅帮衬 lts 发表版,
所以 Ubuntu15.04 那些臆想有点麻烦了, 本文不啄磨此景况.

gn gen out/Default
ninja -C out/Default

android

android 版本只援救在 linux 编译, 无法在 mac 环境中编译.

编译环境 jdk8 安装:

实际安装就隐瞒了, 关键是环境变量设置, 楼主踩过这些坑,
环境变量未安装科学, 致各样 jni 相关的错误.

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export GYP_DEFINES="OS=android"
export PATH=$PATH:${JAVA_HOME}/bin

android 编译

本着 armv7, armv8, x86, x64 都急需再一次编译下

gn gen out/Default --args='target_os="android" target_cpu="arm64"'
ninja -C out/Default

ios

// todo install

切换来支行:

git checkout -b local_branch branch_heads/$branch

gclient sync

./tools_webrtc/ios/build_ios_libs.sh

并发报错:

../../third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_input.c:1734:15: error: taking address of packed member 'time_entered' of class or structure 'sctp_state_cookie' may result in an unaligned pointer value [-Werror,-Waddress-of-packed-member]
                                                              &cookie->time_entered,
                                                               ^~~~~~~~~~~~~~~~~~~~
../../third_party/usrsctp/usrsctplib/usrsctplib/netinet/sctp_input.c:2486:10: error: taking address of packed member 'time_entered' of class or structure 'sctp_state_cookie' may result in an unaligned pointer value [-Werror,-Waddress-of-packed-member]

亟待打个补丁,Pacth
[https://codereview.chromium.org/2833833002\]

cd build

patch -p2 -i /path/to/downloaded/issue2833833002_1.diff

其它要求根据分裂 xcode 版本 如 8.3.3 则增添 xcode_version == “0833” 到
build/config/compiler/BUILD.gn 文件中( 搜索 xcode_version, 增加 || 条件
)

执行 ./tools_webrtc/ios/build_ios_libs.sh

提取 src/out_ios_libs/WebRTC.framework

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图