《WebRTC Native实战开发》第一章 开发环境搭建(Win10 + VS2017)

第一章 开发环境搭建(Win10 + VS2017)

由于版本一直在迭代,使用网上的博客有可能是无效的(例如版本已经不对了)。最好的做法是 参考官方文档

webrtc官方文档  https://webrtc.github.io/webrtc-org/native-code/development/

在安装webrtc之前,我们要完成chromium的环境配置

建议所有的cmd,开启管理员权限


安装chromium(官方文档链接

vs相关

  • Visual Studio 2017 (>=15.7.2) to build, but VS2019 (>=16.0.0) is preferred
  • The clang-cl compiler
  • You must install the “Desktop development with C++” component and the “MFC/ATL support” sub-components.
  • You must have the version 10.0.19041 or higher Windows 10 SDK installed 
    • 如果是下的安装包可以在安装的时候选debug工具
    • 如果是通过vs installer安装的, Control Panel → Programs → Programs and Features → Select the “Windows Software Development Kit” → Change → Change → Check “Debugging Tools For Windows” → Change

depot_tools相关

  • 一定将.zip文件解压,不要拖拽
  • 添加系统变量Path -> depot_tools的路径,放在系统变量的最高层
  • 添加 DEPOT_TOOLS_WIN_TOOLCHAIN 系统变量,并设置为0。这是为了告诉depot_tools用本地的vs,不使用google-internal version
  • You may also have to set variable vs2017_install or vs2019_install to your installation path of Visual Studio 2017 or 19, like set vs2019_install=C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional for Visual Studio 2019.
    • 这段话比较奇怪,意思应该是新增系统变量vs2017_install,然后设置变量值为路径。还不是很确定
  •  cmd.exe 运行 gclient安装一些必要的工具
    • cmd设置代理
      • set https_proxy=http://127.0.0.1:1080
      • set http_proxy=http://127.0.0.1:1080
      • 在cmd输入gclient,有下面的反馈,就是ok了
  • 注意确保只有depot_tools目录下的python.bat在所有的python之前。并且在应用程序别名里禁用

获取chromium代码

  • 配置git的信息
    • $ git config --global user.name "My Name"
      $ git config --global user.email "my-name@chromium.org"
      $ git config --global core.autocrlf false
      $ git config --global core.filemode false
      $ git config --global branch.autosetuprebase always
  • 创建chromium目录并且进入该目录
    • mkdir chromium && cd chromium
  • 拉取chromium代码
    • fetch --no-history chromium
    • 如果能看到下载速度,就是对了。 SSR的速度还挺给力的。
    • 如果中途fetch失败了
      gclient sync --nohooks --no-history
  • fetch完成
    • 成功应该是如右图所示的反馈 
    • 会看到.gclient和一个叫src的目录
    • 然后接下来的操作基于该目录,我们要进入src目录
      cd src

配置Build环境

  • 生成.ninja文件
    gn gen out/Default
    • 必须在out目录下生成build directory;默认是debug版本的ninja项目文件
    • 碰到的问题以及解决方案:
      • FileNotFoundError: [Errno 2] No such file or directory: 'chromium\\src\\build\\util\\LASTCHANGE.committime'
        • src目录下执行:python build\util\lastchange.py build\util\LASTCHANGE
        • 再重新gn gen out/Default
    • 成功后的反馈:Done. Made 16724 targets from 2818 files in 20559ms
  • 一些编译加速的方法(PASS)

编译Chromium

  • 使用.ninja编译chromeium
    autoninja -C out\Default chrome
    • 碰到的问题以及解决方案
      • ninja: error: '../../native_client/toolchain/win_x86/pnacl_newlib/bin/x86_64-nacl-objcopy.exe', needed by 'nacl_irt_x86_64.nexe', missing and no known rule to make it
        • 重新同步一些文件,$ gclient sync。我执行了很多遍,每次更新一些远程服务器就关闭链接了,不知道为什么,只能不停地输入同步命令行
      • Failed while running "vpython.bat src/third_party/depot_tools/download_from_google_storage.py --no_resume --directory --recursive --no_auth --num_threads=16 --bucket chromium-apache-win32 src/third_party/apache-win32"
        Hook 'vpython.bat src/third_party/depot_tools/download_from_google_storage.py --no_resume --directory --recursive --no_auth --num_threads=16 --bucket chromium-apache-win32 src/third_party/apache-win32' took 398.49 secsC
        • NOTICE: You have PROXY values set in your environment, but gsutil in depot_tools does not (yet) obey them. Also, --no_auth prevents the normal BOTO_CONFIG environment variable from being used. To use a proxy in this situation, please supply those settings in a .boto file pointed to by the NO_AUTH_BOTO_CONFIG environment var.
        • 卡住ing→莫名其妙gclient sync --nohooks 反馈Done后再编译又可以了

以上问题均为网络问题,网络解决后才有机会将项目跑起来

最后,通过以下代码生成all.sln

gn gen --ide=vs out\Default

慢慢看文档流程,一步步解决! 加油!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值