首页 > 系统相关 >webrtc windows编译记录

webrtc windows编译记录

时间:2023-02-07 15:25:42浏览次数:63  
标签:use false rtc windows XWRtc WEBRTC WIN32 编译 webrtc

//cmd
set path=D:\zzh\depot_tools;%path%
set DEPOT_TOOLS_WIN_TOOLCHAIN 0
set vs2022_install=C:\Program Files\Microsoft Visual Studio\2022\Community

//powershell
$Env:PATH = "D:\zzh\depot_tools;$Env:PATH"
$env:DEPOT_TOOLS_WIN_TOOLCHAIN=0
$env:vs2019_install="C:\Program Files\Microsoft Visual Studio\2019\Community"

//vpn
$env:HTTP_PROXY="http://127.0.0.1:33210"
$env:HTTPS_PROXY="http://127.0.0.1:33210"
$env:all_proxy="socks5://127.0.0.1:33211"
export https_proxy=http://127.0.0.1:33210 http_proxy=http://127.0.0.1:33210 all_proxy=socks5://127.0.0.1:33211

src下面执行

gn gen 目录
ninja -c 目录

args.gn

rtc_build_tools = false
treat_warnings_as_errors = false
use_rtti = true
is_clang = false
target_cpu = "x64"
is_debug = true
symbol_level  = 2
target_os = "win"
uenable_libaom = false
enable_libaom_decoder = false
rtc_use_h264 = false
rtc_enable_protobuf = false
rtc_include_ilbc = false
rtc_libvpx_build_vp9 = false
rtc_include_tests = false 
enable_iterator_debugging = true 
rtc_build_examples = false
rtc_enable_avx2 = false
libcxx_abi_unstable = false
use_custom_libcxx_for_host = false
use_custom_libcxx = false

1. 问题:

1.1 LNK2038 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2”(RTCRoomImpl.obj 中) XWRtc D:\XWRTC\client\windows\XWRtcWinDemo\XWRtc\libcpmtd0.lib(xgetwctype.obj) 1

_ITERATOR_DEBUG_LEVEL不匹配的解决方案就是在Debug版本的args.gn中写入enable_iterator_debugging=true参数,然后再执行gn gen out/Debug重新生成文件,再调用ninja编译就可以了。

1.2 LNK2005 "protected: char * __cdecl std::basic_streambuf<char,struct std::char_traits >::eback(void)const " (?eback@?\(basic_streambuf@DU?\)char_traits@D@std@@@std@@IEBAPEADXZ) 已经在 webrtc.lib(int128.obj) 中定义 XWRtc D:\XWRTC\client\windows\XWRtcWinDemo\XWRtc\msvcprtd.lib(MSVCP140D.dll) 1

修改文件

src\build\config\win\BUILD.gn

中static_crt如下

config("static_crt") {
  if (is_debug) {
    # This pulls in the static debug CRT and defines _DEBUG
    cflags = [ "/MDd" ]
    if (use_custom_libcxx) {
      ldflags = [ "/DEFAULTLIB:libcpmtd.lib" ]
    }
  } else {
    cflags = [ "/MD" ]
    if (use_custom_libcxx) {
      ldflags = [ "/DEFAULTLIB:libcpmt.lib" ]
    }
  }

cflags = [ "/MDd", "/Z7" ]

1.3 预编译宏

NOMINMAX
WIN32_LEAN_AND_MEAN
WEBRTC_WIN
_CRT_SECURE_NO_WARNINGS
WIN32

严重性 代码 说明 项目 文件 行 禁止显示状态
错误 LNK2001 无法解析的外部符号 CRYPTO_refcount_inc XWRtc D:\XWRTC\client\windows\XWRtcWinDemo\XWRtc\webrtc.lib(encrypted_client_hello.obj) 1

https://cloud.tencent.com/developer/article/1960512

D:\zzh\webrtc\src\third_party\boringssl\src>
-#if defined(OPENSSL_C11_ATOMIC)
+#if defined(OPENSSL_C11_ATOMIC)// && !defined(_MSC_VER)

USE_AURA=1;_HAS_EXCEPTIONS=0;__STD_C;_CRT_RAND_S;_CRT_SECURE_NO_DEPRECATE;_SCL_SECURE_NO_DEPRECATE;_ATL_NO_OPENGL;_WINDOWS;CERT_CHAIN_PARA_HAS_EXTRA_FIELDS;PSAPI_VERSION=2;WIN32;_SECURE_ATL;WINUWP;WRL_NO_DEFAULT_LIB;WINAPI_FAMILY=WINAPI_FAMILY_PC_APP;WIN10=_WIN32_WINNT_WIN10;WIN32_LEAN_AND_MEAN;NOMINMAX;_UNICODE;UNICODE;NTDDI_VERSION=NTDDI_WIN10_RS2;_WIN32_WINNT=0x0A00;WINVER=0x0A00;NDEBUG;NVALGRIND;DYNAMIC_ANNOTATIONS_ENABLED=0;WEBRTC_ENABLE_PROTOBUF=0;WEBRTC_INCLUDE_INTERNAL_AUDIO_DEVICE;RTC_ENABLE_VP9;HAVE_SCTP;WEBRTC_LIBRARY_IMPL;WEBRTC_NON_STATIC_TRACE_EVENT_HANDLERS=0;WEBRTC_WIN;ABSL_ALLOCATOR_NOTHROW=1;HAVE_SCTP;WEBRTC_VIDEO_CAPTURE_WINRT

标签:use,false,rtc,windows,XWRtc,WEBRTC,WIN32,编译,webrtc
From: https://www.cnblogs.com/WillingCPP/p/17098491.html

相关文章

  • 第一个编译器
    目录第一个编译器1.编译2.历史3.跳出某一种语言4.未来第一个编译器1.编译编译器也是也是一个运行程序,那么它是不是也需要另外一个编译器来编译呢?是的,那么第一个编......
  • 图表控件LightningChart.NET 系列教程(八):LightningChart 组件——从工具箱添加至 Windo
    LightningChar​t.NET​ SDK是一款高性能数据可视化插件工具,由数据可视化软件组件和工具类组成,可支持基于Windows 的用户界面框架(WindowsPresentationFoundation)、Win......
  • 编译flannel 支持VNI 扩展
    实际上属于一个业务问题,有几个k8s环境,有一个外部服务需要通过rpc访问k8s内部的服务,以前是通过部署了与一个环境一样的flannel服务,可以保证外部服务与k8spod是可以......
  • 【C++复习】5.7 多文件结构与编译预处理命令
    1、C++项目结构C++程序的一般组织架构类声明文件(.h文件)类实现文件(.cpp文件)类的使用文件(main()所在的.cpp文件)用工程组合各文件2、编译链接编译链接过程3、外部......
  • mysql数据库备份(windows环境)
    备份:cmd输入指令,按照新数据库的字符集去备份,备份等待即可;恢复:之前新建数据库,注意字符集问题,输入指令还原即可; ......
  • 编译指令总结
    编译不过设置指令exportLC_ALL=C编译报错日志导出make-j82>&1|teebuild.log7.1编译指令sourcebuild/envsetup.shlunchmakeupdate-apimakesystemimage-j4......
  • mac m2编译 python3.7.6
    下载https://www.python.org/ftp/python/3.7.16/Python-3.7.16.tgz编译tar-zxvfPython-3.7.16.tgzcdPython-3.7.16.tgz./configure--prefix=/usr/local/python3.7......
  • vscode代码片段输出两个斜杠\\ Windows 路径
    VScode代码片段中输出\\ ,一般常用于Windows路径,斜杠是转义符,想输出就要两个转义符 双引号版,引号需要转义:代码片段(两个斜杠):"path_str=\"\\\"", 效果:......
  • 8.4仅靠编译是无法得到可执行文件的
    编译器转换源代码后,就会生成本地文件。不过,本地文件是无法直接运行的。编译器转换源代码后,就会生成本地文件。不过,本地文件是无法直接运行的。为了得到可以运行的EXE文件,......
  • 8.3编译器负责转换源代码
    能够把C语言等高级编程语言编写的源代码转换成本地代码的程序称为编译器。每个编写源代码的编程语言都需要其专用的编译器将C语言编写的源代码转换成本地代码的编译器称......