win10 vs2017編譯webrtc

   

目錄

VPN的搭建

代碼的下載編譯

遇到的坑


經過幾番的掙扎,最終在win10環境下使用vs2017編譯webrtc成功

需要使用vs2017開發者的控制檯操作、使用管理員啓動控制檯

  • VPN的搭建

         編譯windows的代碼需要VPN翻牆,shadowsock(只支持sock5協議的下載)不支持一些文件的下載,所以需要搭建pptpd服務在國外的阿里服務器上。

            阿里雲上開通硅谷的最便宜的服務器,雲盤選擇20G。如下配置就行,一小時6分錢

            

        搭建VPN可以選擇centos或者ubuntu,可以參考阿里雲上的文章

             雲服務器 ECS Linux Ubuntu 服務器 VPN 配置示例

             如何使用 CentOS 6 實例配置 PPTP VPN 連接

       我使用的是ubuntu14.04 搭建的,搭建過程如果連接不上請設置log文件

1、修改/etc/ppp/options.pptpd中的nologfd,默認沒有開,把nologfd註釋掉

2、然後添加 logfile /var/log/pptpd.log(將nologfd改成這個,在這個日誌裏就可以查到pptpd日誌)

3、修改後重啓下pptpd服務,就可以了

      最後如果windows連接不上的,可能需要使用arp -d -a 命令

          

 

以上,VPN即可用於linux也可以用於windows的連接,如果你能正常的訪問google,搭建過程成功了大半。

  • 代碼的下載編譯

     

    安裝 WebRTC 代碼下載工具 depot_tools(Google),下載解壓就行,最好在C盤根新建webrtc-checkout目錄操作:

    http://dev.chromium.org/developers/how-tos/install-depot-tools

         安裝vs2017,安裝的時候需要選擇:其他工具集中的visio studio擴展開發,否則gclient sync 會報錯

          安裝win10SDK,如果vs2017沒有選擇安裝的話需要安裝,並設置環境變量

         據說還要安裝DXSDK_Jun10,我也不知道有沒有用,反正我裝了

         設置環境變量:(因爲我是從vs2015配置不行轉的vs2017可能有些環境變量不需要也行)

           

GYP_DEFINES=target_arch=x64
GYP_GENERATORS=ninja,msvs-ninja
GYP_MSVS_VERSION=2017
DEPOT_TOOLS_WIN_TOOLCHAIN=0

//這個安裝完就有了
DXSDK_DIR=C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\ 
//win10SDK環境
WindowsSdkDir=C:\Program Files (x86)\Windows Kits\10\

PAHT 加上win10SDK的x64 bin目錄
C:\Program Files (x86)\Windows Kits\10\bin\10.0.17134.0\x64;
C:\webrtc_checkout\depot_tools;

          配置完成後,使用gclient命令下載默認的工具,等出現gclient的用法就OK

         在webrtc-checkout目錄下新建webrtc目錄進入,輸入:fetch --nohooks webrtc 獲取代碼

輸入gclient sync同步完成後

gn gen --ide=vs out/Debug    //生成工程
ninja -C out/Debug            //編譯

以上基本編譯完成。

最後在out/Debug目錄下可以找到all.sln打開工程。

  • 遇到的坑

整體的環境是下載的win10鏡像,用vmware創建的虛擬機搭建的,分配的磁盤要夠,整個搭建基於0開發環境的win10基礎搭建。

不要使用win7,一開始使用的是win7上的vs2015搭建,需要自己安裝win10SDK,最後也是編不過。

不要使用vs2015編譯,如果是2015據說需要用vs2015 update 3才行,因爲一開始裝的就是vs2015,報了很多錯誤

如:

libvpx error C2718: '__m128i': actual parameter with requested alignment of 16 won't be aligned

libvpx sum_squares_sse2.c(108): error C2220: warning treated as error - no '

C2718: '__m128i': actual parameter with requested alignment of 16 won't be aligned

error C2228: left of '.data' must have class/struct/union

 

         關於AssertionError  可以參考https://bugs.chromium.org/p/webrtc/issues/detail?id=7677 這地址,需要使用vs2017開發者的控制檯操作

一些錯誤的解決地址

https://stackoverflow.com/questions/46023981/webrtc-not-building-for-windows-too

https://groups.google.com/a/chromium.org/forum/#!topic/chromium-dev/_W1qVmGGc4M

既然能翻牆了,出錯了就google吧,方法總比困難多,哈哈哈哈

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章