quiche编译

news2024/12/25 22:18:09

netty http3使用了rust语言的quiche,quiche使用了c++语言的boringssl,
网上没有找到编译好的quiche,只能自己搭建rust环境编译

1、rust安装

见官网https://www.rust-lang.org/tools/install
我是用的是windows的ubuntu,所以直接使用:

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source "$HOME/.cargo/env"

2、其他基础库

需要安装cmake、go、perl等,如果没有安装,编译过程也会提示

sudo apt install cmake
sudo apt install golang
sudo apt install perl

3、下载quiche代码和boringssl代码

将boringssl代码放到quiche/deps/boringssl/
https://github.com/cloudflare/quiche
https://github.com/google/boringssl.git

4、编译quiche

QUICHE_BSSL_PATH="/mnt/d/codeC/quiche-0.6.0/deps/boringssl" cargo build

这时会出现错误:

error: could not find native static library `crypto`, perhaps an -L flag is missing?
error: could not compile `quiche` (lib) due to previous error

修改quiche/src/build.rs:
println!(“cargo:rustc-link-search=native={}”, build_dir);
修改为:

println!("cargo:rustc-link-search=native={}/crypto", build_dir);
println!("cargo:rustc-link-search=native={}/ssl", build_dir);

在这里插入图片描述
5、编译boringssl

cd boringssl
mkdir build
cmake ..
make
这时有可能提示:
= note: /usr/bin/ld: /mnt/d/codeC/quiche-0.6.0/deps/boringssl/build//crypto/libcrypto.a(bcm.c.o): relocation R_X86_64_PC32 against symbol `stderr@@GLIBC_2.2.5' can not be used when making a shared object; recompile with -fPIC
      /usr/bin/ld: final link failed: bad value
      collect2: error: ld returned 1 exit status

修改boringssl下面的CMakeLists,在合适位置加上:
在这里插入图片描述
然后重新生成makefile并重新编译:

cd build
cmake ..
make clean
make

再按照上文重新编译quiche,如果还是报错,手动替换掉target目录下旧的libcrypto.a文件

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/714709.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

苹果市值再度突破3万亿美元

KlipC报道:当地时间周五,苹果市值再度突破3万亿美元,这是近43年来,苹果第二次市值达到3万亿。 KlipC的合伙人Andi Duan表示:“得益于苹果股价上涨,以及硅谷银行引发的金融市场动荡,再加上高端IP…

【嵌入式Qt开发入门】如何创建并连接信号与槽

创建信号 我们先新建一个项目,命名为 signal_slot_example,如果还不会新建项目,请回到 【嵌入式Qt开发入门】初识信号与槽查看项目如何建立的。取消勾选*ui 文件,其他步骤不变。 由于信号只需声明,无需定义。所以我们只…

Mac端显示服务器上show的内容

Mac端显示服务器上show的内容 1. 需求描述 在Mac端(终端和PyCharm中)编写代码,在服务器端运行程序。需要在Mac端显示服务器端运行的内容,比如,运行的视频等。 2. 常见报错 SSH 运行命令时报错示例。 (cv) czjing…

旋转链表:给你一个链表的头节点 head ,旋转链表,将链表每个节点向右移动 k 个位置。

解题思路: 1.找到原链表的最后一个节点 2.计算链表长度n 3.将原链表的尾节点指向链表的头节点,使链表形成环 4.新链表根据画图可知,会在环的(n-k%n)的地方断开,这个节点newtail是新链表的尾节点 5.将新…

Ubuntu 20.04 LTS x86_64 安装 stable-diffusion-webui

官网 Stable Diffusion官网 Stability AI 官方github GitHub - Stability-AI/stablediffusion: High-Resolution Image Synthesis with Latent Diffusion Models stable-diffusion-webui github https://github.com/AUTOMATIC1111/stable-diffusion-webui 安装 下载sta…

ruoyi页面切换查询条件保留

场景描述 业务遇到需求,管理平台的页面打开后输入的查询条件、已经点击的页码、已经查询的数据要求保留下来,在tab菜单切换时保留,在关闭菜单时重置清空。 解决方案 1.使用cookie、localStorage或者sessionStorage 这个方式能解决部分需求…

windows10或者Ubuntu20.04内启动USB外接摄像头并拍照

1. windows10系统内启动摄像头并拍照 1.1 把带摄像头的USB接口插到电脑的USB接口上。 1.2 左下角搜索“设备管理器”,并点击,主要是确保笔记本自带的摄像头被禁用,和usb连接的外部摄像头被起用。 1.3 左下角搜索“相机”,并点击拍…

读《effective modern c++》笔记总结

文章目录 一、类型推导与auto模板类型推导ParamType是一个指针或引用,但不是通用引用ParamType是一个通用引用ParamType即不是指针也不是引用数组实参函数实参 auto类型推导 二、decltype的理解三、优先考虑auto而非显示类型声明四、区别使用(&#xff0…

大华 海康 宇视 摄像头 onvif协议 调整时间 开发过程 整理

1、onvif官网 查看SetSystemDateAndTime 方法。 2、下载 ONVIF Device Test Tool 工具,使用教程可以 在这查看。 3、根据Test Tool 工具生成的request进行 Send request 测试。 有了这个本质就是http请求了,我认为可以自己写http请求尝试,我…

大地200C

8芯网线 【24,M03,冷却, m35,m34,m33,m32,24】 冷却【m08开,m09关】 M10夹紧M11松开 M18润滑【m127开,m227关】 X轴:5000 3.0A Y轴&#xff1…

Mybatis-Plus学习4 Page分页

ctrl P 查看可填的属性类型 alt 回车 自动填充数据类型 1、使用Page分页需要先配置config类,加上拦截器 Configuration MapperScan("com/learn/mybatisplus/mapper") public class MybatisPlusConfig {Beanpublic MybatisPlusInterceptor mybatisP…

TiDB 升级利器(参数对比)——TiDBA

作者: 啦啦啦啦啦 原文来源: https://tidb.net/blog/299f0bdc 一.背景 针对 LTS 版本,PingCAP 会提供最多至 3 年时间的常规版本更新,以解决版本运行过程中遇到的问题,以及安全相关的漏洞修复。而对于已经结束维护…

Css面试题

快速居中 flex margin:auto translate position padding和maring的区别 作用对象不同: padding是针对自身的 margin是作用于外部对象的 VW和百分比的区别 百分比有继承关系,继承父级 VW只和设备的宽度有关系 块元素和行内元素 行内元素&…

Vuex基础

Vuex介绍 为什么会有Vuex? https://v3.vuex.vuejs.org/zh/ Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。 Vue是采用集中式管理组件依赖的共享数…

技嘉 B660M Gigabyte Aorus Pro DDR4 i7-12700F 黑苹果efi引导文件

原文来源于黑果魏叔官网,转载需注明出处。(下载请直接百度黑果魏叔) 硬件型号驱动情况 主板B660M Gigabyte Aorus Pro DDR4 处理器Intel Core i7-12700F 2.10 GHz, 25M Cache, up to 4.90 GHz已驱动 内存4 x Corsair Vengeance LPX 8GB 3…

多个SecurityFilterChain执行顺序问题,/oauth2/authorization报404

正常要请求/oauth2/authorization/{regId}跳转到authorization-uri进行认证的,但是搭建好之后,请求这个地址竟然直接报404了,说明oauth2的相关filter并没有生效,直接打到了dispatchServlet。 那到底是哪里的问题呢?de…

人机交互技术复习提纲

认知心理学与人机工程学是人机交互技术的理论基础,而多媒体技术、虚拟现实技术与人机交互是相互交叉和渗透的。 图形用户界面的英文简称为GUI GUI的特点是桌面隐喻技术 直接操纵 所见即所得 自然和谐的人机交互阶段 多通道交互 情感计算 虚拟现实 智能用户界面 自…

为了实现上网自由,我做了一个多功能串口服务器

项目作者:小华的物联网嵌入式之旅 介绍:从事电气自动化行业,多次获得物联网设计竞赛,爱好嵌入式设计开发,物联网开发。 设计方案思路的由来,是因为我们现在的开发板基本需要通过串口与WIFI模组或以太网模…

「2024」预备研究生mem-利润与利润率增长率问题

一、利润与利润率 二、增长率问题 易错题: 三、课后题 每日一练:

BC SAP ECC与 S4 pfcg不同

ECC PFCG 这里的账户咯,可以从Excel编辑好后,直接copy进去 但是在S4里里面,一次只能copy 这个页面范围内的行数,我的是14行,这个根电脑的分辨率有干系 ,但是一定是不全的