VC 2017編譯WebRTC引數介紹

2021-10-25 03:41:58 字數 1414 閱讀 3200

本文主要介紹vc++ 2017編譯webrtc m76版本引數配置,具體**獲取流程請自行閱讀webrtc官方文件:這裡不做展開

先貼出完整的gn引數

1 gn gen --target=x64 --args="symbol_level=0 is_clang = true use_custom_libcxx = false use_rtti=true rtc_include_tests=false rtc_libvpx_build_vp9=true enable_iterator_debugging=true symbol_level=0 proprietary_codecs=true use_openh264=true ffmpeg_branding=\"chrome\" treat_warnings_as_errors=false" out/x64_debug
下面對引數做完整解釋

如下這四個引數用於開啟內建openh264編解碼器支援,缺一不可。

is_clang = true

proprietary_codecs=true

use_openh264=true

ffmpeg_branding=\"chrome\"

1,由於ffmpeg使用vc++編譯編譯會有問題,因此必須強制使用clang,因此開啟is_clang=true

2, 開啟openh264需同時開啟priorietary_codecs, use_openh264這兩個開關,同時設定ffmpet_branding="chrome"

webrtc預設使用自帶的libcxx作為預設的c++標準庫,如果不去除內建libcxx引用,鏈結時將與vc++的libcxx衝突。需加入use_custom_libcxx = false去除libcxx整合

預設webrtc不開啟rtti,如果在**中使用typeid將引起鏈結失敗

預設webrtc這個標記為false,而vc++的debug版本預設為true,如果不增加這個開關,則需要在專案中手動關閉iteartor_debuging這個特性

預設webrtc選項是不帶vp9支援的,需增加rtc_libvpx_build_vp9=true才能支援vp9的編譯碼

symbol_level=0

預設webrtc編譯出來的庫打包了符號表,所以特別大,使用這個命令可以降低符號等級,減少編譯出來的庫的大小

使用這些編譯選項生成的webrtc庫即可被專案使用,但編譯的時候需開啟額外兩個巨集

-dnominmax -dwebrtc_win
由於webrtc內部使用的min,max函式與windows標頭檔案的定義衝突,會引發編譯錯誤,增加nominmax可以解決這個問題

此外,需增加webrtc_win宣告是windows平台,最後,如果需要使用openssl符號,還要增加

win32_lean_and_mean
同時匯出openssl標頭檔案

VC 2017裡使用正規表示式

在c 11之後,std標準庫引入正規表示式的功能,這個功能是比較常用的,因為對模式的匹配和識別,是一項經常需要運用的功能。比如在處理銀行的一些資料檔案,這些檔名稱都是有一定的規律組成的,如果不使用正規表示式,怎麼樣來判斷這些檔名稱是否合法的資料檔案?一般開發人員,就會乙個字元乙個字元地判斷,是否符合...

Debian 10系統下編譯 測試WebRTC

需要有個乙個好的通用網路是前提,大家都懂的。1 clone depot tools 本地環境放到了路徑 usr src git clone 2 設定環境變數 export path usr src depot tools path僅僅設定path在我本地的環境下面還是不可以執行fetch等指令碼,經...

VC編譯選項

vc編譯選項 od 禁用優化 預設值 disable optimizations default ox 最大化選項。ogityb2 gs maximum opts.ogityb1 gs og 啟用全域性優化 enable global optimization oy 啟用框架指標省略 enable ...