前几天在windows平台成功把webrtc的源码编译成功了,链接: https://www.cnblogs.com/132818Creator/p/12516850.html
现在打算把android和linux的版本都编译出来,这两个平台完全可以一次性直接编译出来,下面说下流程。
1、win10电脑安装虚拟机,不太建议装双系统,双系统不能两个平台来回切换,况且如果像我这种不是很习惯linux的不是很方便,所以装虚拟机靠谱一些。
1)vmware下载地址:https://my.vmware.com/cn/web/vmware/info/slug/desktop_end_user_computing/vmware_workstation_pro/15_0
下载for windows 的版本。
2)安装虚拟机,一直点击下一步就行了,可以先使用,激活码的话,后面可以去网上找,这个我是先试用的。
2、在虚拟机里装ubuntu
上图画框是自己下载的ubuntu 的iso文件,下载地址:https://ubuntu.com/download#download ,然后一直下一步就行了。
3、先装下zlib,最新的谷歌源码需要依赖这个,安装方法:https://www.cnblogs.com/132818Creator/p/12580857.html ,亲测最新的版本不依赖cipd以后,不装会报错,报错方式:ImportError: No module named zlib
4、安装python
打开https://www.python.org/ftp/python/ 选择合适的python版本,找到tgz版本的安装包,复制下载的网址路径。
例如:
wget https://www.python.org/ftp/python/3.7.1/Python-3.7.1.tgz
tar -xzvf Python-3.7.1.tgz
cd Python-3.7.1
./configure
sudo make
sudo make install
最后执行 python命令,可以查看到版本信息,就算成功了,如下图:
5、安装git
apt install git
安装成功查看git版本信息
6、安装android jdk
1)下载jdk的包,下载地址: https://www.oracle.com/java/technologies/javase-jdk8-downloads.html
2) 我下载的是这个:jdk-8u241-linux-i586.tar.gz
3)执行命令 sudo tar -zxvf jdk-8u241-linux-i586.tar.gz 解压出来
4) 加入到环境变量
我的菜鸟入门 关于怎么操作环境变量:https://www.cnblogs.com/132818Creator/p/12565107.html
返回到根目录 :cd
vim .bashrc
在最下面增加:
export JAVA_HOME=/usr/local/jvm/jdk1.8.0_241
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
退出vim (按下esc ,开启大写键盘,双击Z)
执行命令:
source .bashrc
保存环境变量完成,在命令行输入 java -version
7、linux翻墙:
这里用的是lantern
下载: lantern-installer-64-bit.deb
下载地址:https://github.com/getlantern/lantern
下载完以后执行命令:sudo apt install gdebi-core
然后进入到下载的deb文件的文件夹下,执行 sudo gdebi lantern-installer-beta-64-bit.deb
安装完成。
8、安装android sdk
下载Android SDK 官网http://developer.android.com/sdk/index.html
解压 tar -zxvf android-sdk_r16-linux.tgz
vim .bashrc
添加环境变量:
export ANDROID_HOME=/usr/local/android_sdk/android-sdk-linux
export PATH=$PATH:${ANDROID_HOME}/tools
export PATH=$PATH:${ANDROID_HOME}/platform-tools
source .bashrc
9、安装android ndk
1.下载android-ndk64-r10b-linux-x86_64.tar.bz2,下载地址:http://dl.google.com/android/ndk/android-ndk64-r10b-linux-x86_64.tar.bz2
2、 vim .bashrc
export NDK=/home/davebobo/android-ndk-r10b
export PATH=${PATH}:$NDK
10、下载depot_tools
这一步必须是ubuntu下载的,博主把之前windows下载的拷贝过来,执行脚本有很多问题,比如dos2unix等等,安全起见,建议大家直接下载。
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
将depot_tools加入到环境变量,路径写到depot_tools这一层。
11、下载代码
linux:fetch --nohooks webrtc
android:fetch --nohooks webrtc_android
上面两个命令,选择对应平台去fetch拉取代码
无论中断或者不中断都没事,继续执行gclient sync 同步更新代码
如果报错记得看下什么错误,如果提示服务器连接不上,可能是翻墙的网络不行。
如果报错 ImportError: No module named zlib
解决办法:1)安装zlib 安装方法:https://www.cnblogs.com/132818Creator/p/12580857.html
2)然后重新make python
cd Python2.7.11
./configure
make
make install
12、编译
1)cd src
2)./build/install-build-deps.sh
3)./build/install-build-deps-android.sh
4)
android:gn gen out/Debug --args='target_os="android" target_cpu="arm"'
To build for ARM64: use target_cpu="arm64"
To build for 32-bit x86: use target_cpu="x86"
To build for 64-bit x64: use target_cpu="x64"
linux:gn gen out/LinuxDebug
5) ninja -C out/Debug
6)生成给Android Studio使用的gradle
build/android/gradle/generate_gradle.py --output-directory $PWD/out/Debug --target "//examples:AppRTCMobile" --use-gradle-process-resources --split-projects --canary