webrtc源码下载编译

来源:互联网 发布:php safe mode 编辑:程序博客网 时间:2024/05/19 23:25

创作于:17年3月8日

国内由于被墙的原因下载webrtc源码与设置编译环境都很困难,自己使用阿里云服务器成功下载了源码并进行了编译.
步骤:
1: 注册阿里云,建立阿里云服务器, webrtc官方推荐Ubuntu 内存要不小于4G 硬盘要不小于60G: 现在代码和依赖一共是将近16G 编译后将近30G 压缩后也有很大最少要60G, 服务器地址选择香港,下载代码到自己电脑的时候比较快,网速要设置最大,下载代码到服务器也快,

2:建立好香港的服务器之后就会分配公网IP和私网IP,可以使用公网IP 登录服务器, Windows一般使用putty软件登录,Ubuntu一般使用控制台 ssh就可以登录,阿里云服务器登录 ssh root@(你的公网IP) eg: ssh root@47.192.1.23
回车,输入你的登录密码就可以链接服务器,由于是香港的服务器,网络比较慢,所以输入命令的时候要耐心等待.(本人使用的是Ubuntu系统)

3;链接之后,切换到你的用户目录, 若你创建的服务器没有用户只有root用户, sudo adduser 添加用户,具体命令自己百度.

4:进入用户目录后开始下载webrtc源码,先要下载下载源码时所要前期设置的环境,git 软件安装.

5:git下载depot_tools 链接: git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git

6:设置depot_tools的环境变了, 环境变量的设置类似Java环境变量的设置. export PATH=(pwd你depot_tools的路径)/depot_tools:”$PATH”

7: 新建webrtc文件夹,进入文件夹,开始下载源码,
mkdir webrtc
cd webrtc
fetch –nohooks webrtc_android 这个是下载源码的命令,我要进行的是Android的编译,这个需要一段时间,别停止,网速好的话,并不需要多少时间,没报错就是最好的,下载将近16G

8:下载完之后,开始同步代码, 命令: gclient sync 这个也需要不少时间,耐心等待

9: 同步完成,开始设置编译环境, Google给了你编译环境的脚本,这里就不需要自己辛苦搞了,
在 src/build/里有脚本运行就可以了 脚本为 install-build-deps.sh 和 install-build-deps-android.sh

10:执行完环境设置脚本之后开始编译,进入到src目录, 使用ninja编译
设置编译选项 命令: gn gen out/debug –args=’target_os=”android” target_cpu=”arm”’
不同的编译不同的参数, arm64—- target_cpu=”arm64”
32-bit x86–target_cpu=”x86”
64-bit x64– target_cpu=”x64”
编译: 命令:ninja -C out/debug

11:源码打包压缩,将整个你的webrtc目录打包, 进入到包含你新建的webrtc文件的目录
命令: tar zcvf webrtc.tar.gz wertc/
等待压缩结束
压缩depot_tools, 后期也要下载,设置自己电脑的编译环境.

12:下载源码到自己的电脑: 这时不再是下载Google源码了,而是下载自己服务器上的代码,这里网速比较稳定,也比较快.
在新的控制台下载代码使用scp命令: scp root@47.90.125.153:/home/song/webrtc.tar.gz /home/tian/

下载 depot_tools到自己的电脑,  scp -r root@47.90.125.153:/home/song/depot_tools/  /home/tian/ scp命令的详细使用请自行百度.  注意:下载的文件很大,需要好几个小时,这里阿里云流量为1元/G 下载下来也要花十几元的欧, 这里主要是VPN不稳定,容易断,所以采用的阿里云.

13:全部下载完之后,解压你所下载的文件, 按照设置服务器上的depot_tools环境变量的方法,设置自己的电脑,

14:根据解压的webrtc,按照服务器上配置编译环境的方法,使用里面的脚本,配置自己的编译环境依赖, 我这里不知道怎么执行失败,如果你也执行失败,你可以打开这两个脚本.
脚本里面的命令如果看不懂没关系,需要下载的包的大概名字你应该能看到看懂, 不管什么,只要这两个脚本里有的,自己使用apt-get install 安装. 我自己整理的依赖
有:
//install-build-deps.sh
bison cdbs curl dpkg-dev elfutils devscripts fakeroot flex fonts-ipafont fonts-thai-tlwg g++ git-core git-svn gperf libasound2-dev libbrlapi-dev libav-tools libbz2-dev libcairo2-dev libcap-dev libcups2-dev libcurl4-gnutls-dev libdrm-dev libelf-dev libffi-dev libgconf2-dev libglib2.0-dev libglu1-mesa-dev libgnome-keyring-dev libgtk2.0-dev libgtk-3-dev libkrb5-dev libnspr4-dev libnss3-dev libpam0g-dev libpci-dev libpulse-dev libsctp-dev libspeechd-dev libsqlite3-dev libssl-dev libudev-dev libwww-perl libxslt1-dev libxss-dev libxt-dev libxtst-dev openbox patch perl pkg-config python python-cherrypy3 python-crypto python-dev python-numpy python-opencv python-openssl python-psutil python-yaml rpm ruby subversion ttf-dejavu-core wdiff xcompmgr zip

g++-mingw-w64-i686 lib32z1-dev  libasound2:i386  libcap2:i386  libelf-dev:i386 libfontconfig1:i386  libgconf-2-4:i386  libglib2.0-0:i386  libgpm2:i386  libgtk2.0-0:i386  libgtk-3-0:i386   libncurses5:i386 lib32ncurses5-dev  libnss3:i386  libpango1.0-0:i386  libssl1.0.0:i386  libtinfo-dev  libtinfo-dev:i386  libtool  libxcomposite1:i386  libxcursor1:i386  libxdamage1:i386  libxi6:i386      libxrandr2:i386  libxss1:i386  libxtst6:i386  texinfo  xvfb   随着webrtc源码的更新可能依赖有所增加,自己看依赖脚本.

15:尝试在自己的电脑上编译,按照原来的在云服务器上的编译步骤,编译, 如果出错,再行百度,研究解决问题才是程序员该做的

今天是三八妇女节,截止到今天,依靠自己的理解,webrtc编译完之后androiid的jar依赖不在是libjingle-peerconnection.jar 而是变成了
libjingle_peerconnection_java.jar 若是自己使用的webrtc功能较多,libjingle的附近目录中有base.和voice_engine的jar ,这个在以前的编译
中是在一起的,现在都分开了.需要注意,

最后吐槽一下国内的网: 那么强的墙,让人访问网站的都不能,更别说下载东西了,固步自封, 我们在的其实就是一大的局域网,这让程序员怎么能有很大的提高啊, 没有Google 没有YouTube 没有所有的一切啊

0 0