webrtc编译,不使用内置boringssl,使用openssl的
前言
在项目开发过程中,会遇到使用https、TLS、DTLS等场景,这些第三方库一般会使用openssl作为加密套件。例如,qt中加密套件就会使用openssl,但是webrtc会默认使用boringssl;因为boringssl是从openssl创建的分支,两个库同时使用会出现重定义。
一.验证通过的版本
webrtc版本为m96
vs2019
二.生成sln工程
gn gen out/Release --ide=vs2019 --args="use_custom_libcxx=false is_debug=false target_cpu=\"x64\" is_clang=true proprietary_codecs=true treat_warnings_as_errors=false rtc_include_tests=false rtc_enable_protobuf=false rtc_use_h264=true use_rtti=true rtc_build_ssl=false rtc_ssl_root=\"D:/Qt/Tools/OpenSSL/Win_x64/include\""
三.修改工程文件
编辑 out/Release/obj/webrtc.ninja
删除正则表达匹配的内容 [a-z/_]*boringssl[a-z/_\.0-9-]*
编辑 out/Release/obj/third_party/libsrtp/libsrtp.ninja
匹配 [a-z/_]*boringssl[a-z/_\.0-9-]*
为分别将
include_dirs匹配替换为 -ID$:/Qt/Tools/OpenSSL/Win_x64/include
build匹配替换为 D$:/Qt/Tools/OpenSSL/Win_x64/lib/libssl.lib
四.开始编译
双击打开out/Release/all.sln
加载完成之后,在vs2019中找到src/webrtc项目进行编译,这个过程比较漫长
编译完成后会在out/Release/obj/目录生成webrtc.lib文件
PS:
已经下载好的资源,可以直接生成工程:https://pan.xunlei.com/s/VMrM1H-qXv_KpoKs1bGCMaLgA1 提取码:kjy2
webrtc编译,不使用内置boringssl,使用openssl的的更多相关文章
- Android:源码环境下移植第三方的apk内置到ROM(System Image)中
1. 首先在vendor目录下新建一个the3rdapk的目录,将需要内置的apk丢进去,目录名自己随意定. 2. 在 build/target/product/common.mk最后面,在$(cal ...
- Shader预处理宏、内置状态变量、多版本编译等
预定义shader预处理宏: Target platform: SHADER_API_OPENGL - desktop OpenGL SHADER_API_D3D9 - Direct3D SHADER ...
- 二、JSP的3个编译指令,7个动作指令,9个内置对象
JSP 3个编译指令 1) page指令(基本不需要用到,使用默认即可) 主要属性: 1.Language:指定脚本所采用的语言类型,现在只支持java 2.Extends:定义当前jsp产生的se ...
- C++ 内置宏定义 与 预编译指令
内置宏和预编译指令, 在代码调试.单元测试.跨平台代码中经常会用到.这里记录一下. 1. 内置宏 (文件名,当前行号,当前日期,当前时间,当前执行方法名) __FILE____LINE____DATE ...
- JSP基本的语法、3个编译指令、7个动作指令、9个内置对象
一.jsp概述 JSP是java server page的缩写,其本质是一个简化的servlet,是一种动态网页技术标准.jsp页面是在HTML页面中嵌入java程序段.使用jsp开发的应用程序能够跨 ...
- Java 性能分析工具 , 第 2 部分:Java 内置监控工具
引言 本文为 Java 性能分析工具系列文章第二篇,第一篇:操作系统工具.在本文中将介绍如何使用 Java 内置监控工具更加深入的了解 Java 应用程序和 JVM 本身.在 JDK 中有许多内置的工 ...
- Web内置对象 跨页面传值
内置对象: 1.QueryString - 地址栏数据拼接 get传值方式 格式:?key=value优点:简单好用,速度快,不消耗服务器内存. 缺点:只能传字符串,保密性不好,长度有限 Reques ...
- Android源码中内置包含so文件的APK文件
方法一: 在packages/apps下面以需要预置的APK名字创建文件夹,以预置一个名为Test的APK为例 将Test.apk放到packages/apps/Test下面 在packages/ap ...
- 【Go入门教程2】内置基础类型(Boolean、数值、字符串、错误类型),分组,iota枚举,array(数值),slice(切片),map(字典),make/new操作,零值
这小节我们将要介绍如何定义变量.常量.Go内置类型以及Go程序设计中的一些技巧. 定义变量 Go语言里面定义变量有多种方式. 使用var关键字是Go最基本的定义变量方式,与C语言不同的是Go把变量类型 ...
- Nginx-解读内置非默认模块 ngx_http_stub_status_module
1.Background ngx_http_stub_status_module 是一个 Nginx 的内置 HTTP 模块,该模块可以提供 Nginx 的状态信息.默认情况下这个模块是不被编译进来的 ...
随机推荐
- k8s-ingress配置websocket支持
具体来说,使用的ingress-controller不一样,有关的设置也不太一样 Kubernetes Ingress Controller (k8s官方) 参考 http://github.com/ ...
- Ceph 存储集群第一部分:配置和部署
内容来源于官方,经过个人实践操作整理,官方地址:http://docs.ceph.org.cn/rados/ 所有 Ceph 部署都始于 Ceph 存储集群. 基于 RADOS 的 Ceph 对象存储 ...
- 文档的CURD
Index方式,需要指定ID 如果ID不存在,创建新的文档,状态是created 如果ID存在,会先删除现有ID的文档,然后创建一个新文档,ID数加1,状态是updated PUT test/_doc ...
- 4.Gitlab CI 与 Kubernetes 的结合
参考网址:https://www.qikqiak.com/post/gitlab-ci-k8s-cluster-feature/
- Django命令
(venv) E:\Py_CODE\myapp>python manage.py --help Type 'manage.py help <subcommand>' for help ...
- 跟我学Python图像处理丨带你掌握傅里叶变换原理及实现
摘要:傅里叶变换主要是将时间域上的信号转变为频率域上的信号,用来进行图像除噪.图像增强等处理. 本文分享自华为云社区<[Python图像处理] 二十二.Python图像傅里叶变换原理及实现> ...
- Java删除word合并单元格时的重复值
Spire.Doc提供了Table.applyVerticalMerge()方法来垂直合并word文档里面的表格单元格,Table.applyHorizontalMerge()方法来水平合并表格单元格 ...
- 「产品运营」研发效能之DevOps平台如何运营?
有人常说「酒香不怕巷子深」.不是的,如果这个巷子是酒吧街,那最深的那家酒吧肯定是租金最便宜的.酒吧的地段好坏已经在租金价格上体现出来了.现在已经不是那个工具缺乏.有个工具就拍手称快.欣然去试用的时代了 ...
- 初等数论学习笔记 III:数论函数与筛法
初等数论学习笔记 I:同余相关. 初等数论学习笔记 II:分解质因数. 1. 数论函数 本篇笔记所有内容均与数论函数相关.因此充分了解各种数论函数的名称,定义,符号和性质是必要的. 1.1 相关定义 ...
- oracle中的行转列,列转行
行转列:源表: 方法1:case when select y,sum(case when q=1 then amt end) q1,sum(case when q=2 then amt end) q2 ...