VC++ 2017編譯WebRTC參數介紹


本文主要介紹VC++ 2017編譯webrtc m76版本參數配置,具體代碼獲取流程請自行閱讀webrtc官方文檔:https://webrtc.org/native-code/development/,這里不做展開

先貼出完整的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支持

如下這四個參數用於開啟內置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"

不使用內置的libcxx

webrtc默認使用自帶的libcxx作為默認的c++標准庫,如果不去除內置libcxx引用,鏈接時將與vc++的libcxx沖突。需加入use_custom_libcxx = false去除libcxx集成

開啟rtti

默認webrtc不開啟rtti,如果在代碼中使用typeid將引起鏈接失敗

開啟enable_iteartor_debuging

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

支持vp9

默認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頭文件

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM