webrtc windows编译记录
//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
webrtc windows编译记录的更多相关文章
- CEF3.2623使用记录:windows编译
CEF3.2623使用记录:windows编译 1:cef3.2623下载地址 2623是cef3最后一个支持xp系统的版本,且可以支持html的audio标签,可以用作对html音频的处理下载地址为 ...
- caffe windows编译
MicroSoft维护的caffe已经作为官方的caffe分支了,编译方式也改了,刚好最近重装了一次caffe windows, 记录一下里面的坑 https://github.com/BVLC/ca ...
- OGRE 2.1 Windows 编译
版权所有,转载请注明链接 OGRE 2.1 Windows 编译 环境: Windows 7 64Bit Visual Studio 2012 OGRE 2.1 CMake 2.8.12.1 OGRE ...
- Windows编译ejabberd
Windows编译ejabberd(金庆的专栏)安装 erlang OTP. 添加路径到 PATH, 使 erl 可以运行.git clone ejabberd安装 rebar:git clone g ...
- 【转载】OGRE 2.1 Windows 编译
OGRE 2.1 Windows 编译 环境: Windows 7 64Bit Visual Studio 2012 OGRE 2.1 CMake 2.8.12.1 OGRE: OGRE官方推出了最新 ...
- WebRTC分支提交记录
截至2019.8.6日,webrtc官网release了M76,具体可参考:release notes WebRTC分支提交记录可以查看git commit记录. 方法:git checkout 到特 ...
- Windows 编译安装 nginx 服务器 + rtmp 模块
有关博客: <Windows 编译安装 nginx 服务器 + rtmp 模块>.<Ubuntu 编译安装 nginx>.<Arm-Linux 移植 Nginx> ...
- php beast windows编译教程
git clone https://github.com/Microsoft/php-sdk-binary-tools.git c:\php-sdk cd c:\php-sdk git checkou ...
- windows下webrtc的编译 2016(转)
====================20160124更新============================= 推荐一个FQ工具,shadowsocks,是需要付费的,一年也才不到100块,移 ...
- Windows编译运行webrtc全过程
年纪大了,不想写什么开头.摘要,咱直接开始吧. 不过首先还是要感谢声网提供的webrtc国内源码镜像. 首先,编译webrtc你需要一台win10,而且必须得是一直在更新版本的.因为编译过程需要用到c ...
随机推荐
- 电子辅助的个体化严密控制策略比常规方法更有效地帮助早期RA实现全面控制病情[EULAR2015_THU0122]
电子辅助的个体化严密控制策略比常规方法更有效地帮助早期RA实现全面控制病情 THU0122 A TAILORED TELEMONITORING TIGHT CONTROL STRATEGY FOR P ...
- PostgreSQL函数如何返回数据集
背景: PostgreSQL里面没有存储过程,只有函数,其他数据库里的这两个对象在PG里都叫函数. 函数由函数头,体和语言所组成,函数头主要是函数的定义,变量的定义等,函数体主要是函数的实现,函数的语 ...
- IIS 负载均衡(ARR)
Application Request Route:应用程序请求路由 1.下载安装web平台安装程序 微软官网搜索 "web平台安装程序" 只能找到 "web平台安装程序 ...
- LeetCode-838 推多米诺
来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/push-dominoes 题目描述 n 张多米诺骨牌排成一行,将每张多米诺骨牌垂直竖立.在开始时 ...
- 实验一C语言开发环境使用和数据类型·运算符·表达式
#include<stdio.h> int main(){ printf(" o \n"); printf("<H>\n"); prin ...
- Java实现简单个人所得税计算器相关操作代码
/** * 个税计算器 * 1.通过键盘输入用户的月薪 * 2.百度搜素个税计算方法,计算出应缴纳的税款 * 3.直到键盘输入88,则退出程序(使用break语句退出循环) * 应纳税所得额=工资收入 ...
- Java实现台球游戏的动画实现相关代码
package com.bjsxt;//scr中新建的包packageimport java.awt.*;import javax.swing.*;public class BallGame exte ...
- SAP 后台任务定时job
定时任务的事务码 sm36:创建定时任务 sm37:查看定时任务 JDBG:后台任务debug,在对应的sm37中对应的job页面 t-code输入 创建定时任务SM36 名称可以随便起 一般都是按自 ...
- JS中面向对象的多种继承方式
JS本身是基于面向对象开发的编程语言,面向对象开发中最重要的一个概念就是类. 类具有三大特性:封装.继承.多态 封装:类也是个函数,函数的目的是把一个功能代码进行封装,以此实现"低耦合高内聚 ...
- 肖sir___整理 电商详解__拼团活动
电商平台营销活动设计--拼团活动设计 2022-11-29 18:02 拼团是指一定数量的消费者在规定时间内,组织成团,并因人数优势而获取额外优惠或其他利益的一种形式 一.简介 拼团作为一种营销活动, ...