VC++ 2017编译WebRTC参数介绍
VC++ 2017編譯WebRTC參數(shù)介紹
本文主要介紹VC++ 2017編譯webrtc m76版本參數(shù)配置,具體代碼獲取流程請自行閱讀webrtc官方文檔:https://webrtc.org/native-code/development/,這里不做展開
先貼出完整的gn參數(shù)
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下面對參數(shù)做完整解釋
openh264支持
如下這四個參數(shù)用于開啟內(nèi)置openh264編解碼器支持,缺一不可。
is_clang = trueproprietary_codecs=trueuse_openh264=trueffmpeg_branding=\"Chrome\"1,由于ffmpeg使用vc++編譯編譯會有問題,因此必須強(qiáng)制使用clang,因此打開is_clang=true
2, 打開openh264需同時打開priorietary_codecs, use_openh264這兩個開關(guān),同時設(shè)置ffmpet_branding="chrome"
不使用內(nèi)置的libcxx
webrtc默認(rèn)使用自帶的libcxx作為默認(rèn)的c++標(biāo)準(zhǔn)庫,如果不去除內(nèi)置libcxx引用,鏈接時將與vc++的libcxx沖突。需加入use_custom_libcxx = false去除libcxx集成
開啟rtti
默認(rèn)webrtc不開啟rtti,如果在代碼中使用typeid將引起鏈接失敗
開啟enable_iteartor_debuging
默認(rèn)webrtc這個標(biāo)記為false,而vc++的debug版本默認(rèn)為true,如果不增加這個開關(guān),則需要在項(xiàng)目中手動關(guān)閉iteartor_debuging這個特性
支持vp9
默認(rèn)webrtc選項(xiàng)是不帶vp9支持的,需增加rtc_libvpx_build_vp9=true才能支持vp9的編解碼
降低符號等級
symbol_level=0
默認(rèn)webrtc編譯出來的庫打包了符號表,所以特別大,使用這個命令可以降低符號等級,減少編譯出來的庫的大小
項(xiàng)目需添加的宏
使用這些編譯選項(xiàng)生成的webrtc庫即可被項(xiàng)目使用,但編譯的時候需打開額外兩個宏
-DNOMINMAX -DWEBRTC_WIN由于webrtc內(nèi)部使用的min,max函數(shù)與windows頭文件的定義沖突,會引發(fā)編譯錯誤,增加NOMINMAX可以解決這個問題
此外,需增加WEBRTC_WIN聲明是windows平臺,最后,如果需要使用openssl符號,還要增加
WIN32_LEAN_AND_MEAN同時導(dǎo)出openssl頭文件
?
總結(jié)
以上是生活随笔為你收集整理的VC++ 2017编译WebRTC参数介绍的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Oracle 补丁全集 (Oracle
- 下一篇: VC2017 opencv 的项目属性继