在ubuntu上编译WebRTC Android版本

最近由于工作原因在研究安卓上的WebRTC开发。谈到开发,首当是编译。期间遇到一些问题,在此记录一下。

实际上谷歌官方提供的步骤很简单,但是由于众所周知的原因很多需要下载的东西无法直接下载(特别是外企的网络,是不是都很差?),所以我选择在亚马逊的虚拟机下载好了之后,将所有工程文件拷贝到本地的VirtualBox虚拟机中进行编译。所以大家需要想办法啦!注册亚马逊,或者找个别的什么代理,作为程序员这个不难吧!

前提:WebRTC的编译环境要求是64位操作系统,所以无论是本地还是云端,都请确保64位操作系统。


以下步骤在亚马逊的虚拟机上操作:

第一步: 安装相关软件

              SVN: sudo apt-get install subversion
              Git:    sudo apt-get install git

              JDK 1.6 (必须是1.6否则报错)

              下载ANT,Android SDK, Android NDK

              下载deploy_tools:  git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git

第二步: 安装依赖包

              g++ (>= 4.2)
              python (>= 2.4)
              libnss3-dev >= 3.12
              libasound2-dev
              libpulse-dev
              libjpeg62-dev
              libxv-dev
              libgtk2.0-dev
              libexpat1-dev
              libudev-dev
              lib32asound2-dev
              ia32-libs

第三步: 配置环境变量

              需要JAVA_HOME, 并且在PATH指向bin目录

              ANT的bin目录需要放到PATH下

              Android的SDK目录: export ANDROID_SDK_ROOT=/usr/local/google/bin/android-sdk-linux
              Android的NDK目录: export ANDROID_NDK_ROOT=/usr/local/google/bin/android-ndk-r7

              deploy_tools目录需要放到PATH下

第四步: 下载源码

              gclient config https://webrtc.googlecode.com/svn/trunk
              echo "target_os = ['android']" >> .gclient
              gclient sync --nohooks

第五步: 下载工程文件

              cd trunk
              source ./build/android/envsetup.sh
              gclient runhooks

              当正常结束后,请备份。如果后面编译没问题可将这个版本拷贝到本地,这样就无需将编译过的东西也拷贝到本地。

第六步: 编译

              ninja -C out/Debug


如果编译正常完成后,将trunk目录拷贝到本地,当然本地环境应该和云端环境一样不再赘述。

有两个问题需要特别说明:

第一,deploy_tools这个工具在国内貌似用git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git是无法正常下载的。所以我就用了代理(代理无处不在)在本地下载,这个目录并不是很大,很快就下载好了。我尝试过用代理下载WebRTC的代码,失败,因为代码量太大,而代理进来又十分不稳定。

大家肯定非常想问为啥deploy_tools必须在本地下载?因为我曾经从亚马逊上拷贝下来,然后再运行时报文件已被更改,请提交或者回溯的错误。我尝试提交(当然不成功),尝试回溯也悲剧的失败了。所以无奈只能在本地重新下载,多亏不是很大。

第二,请不要把工程目录(也就是trunk)下的.svn目录全部删掉。我曾经用命令把所有的.svn目录删掉,然后编译时悲剧的报了一个错误,明确指出找不到某.svn目录下的某文件找不到。还没时间研究为什么,等我有结论再做补充。




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Windows 10上编译WebRTC可以按照以下步骤进行: 1. 首先,确保你的系统已经安装了Visual Studio。WebRTC在Windows上的编译需要使用Visual Studio环境。 2. 下载depot_tools,它是一个用于下载WebRTC源代码的工具。可以在GitHub上找到depot_tools的源码,并按照文档中的步骤进行安装。 3. 打开命令提示符或PowerShell,并导航到你想要保存WebRTC源代码的文件夹。 4. 使用以下命令克隆WebRTC的代码仓库: ``` git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git ``` 5. 添加depot_tools到系统的环境变量中。在命令提示符或PowerShell中,输入以下命令: ``` set PATH=%PATH%;[depot_tools目录的路径] ``` 这将使你能够在任何目录中使用depot_tools中的命令。 6. 使用以下命令下载WebRTC的源代码: ``` fetch --nohooks webrtc ``` 此命令将下载WebRTC的源代码到当前文件夹下的src目录中。 7. 进入src目录,并使用命令执行Hook脚本以获取编译所需的依赖项: ``` cd src gclient runhooks ``` 8. 接下来,根据你的编译需求选择合适的方案,并使用gn生成构建配置文件。 如果你想做一个默认构建,可以使用以下命令: ``` gn gen out/Default ``` 如果你想构建一个调试版本,可以使用以下命令: ``` gn gen out/Debug --args="is_debug=true" ``` 构建配置文件将生成在out/Default或out/Debug目录中。 9. 最后,使用ninja命令来编译WebRTC: ``` ninja -C out/Default ``` 或者,如果你选择了调试版本: ``` ninja -C out/Debug ``` 这将编译WebRTC并生成可执行文件和库文件。 以上是在Windows 10上编译WebRTC的简要步骤。请注意,这只是一个概述,实际操作可能会根据具体环境有所不同。在实际操作中,请根据WebRTC项目的文档和最新的指南进行操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值