写点什么

linux lsquic 编译

用户头像
糖米唐爹
关注
发布于: 3 小时前
linux lsquic  编译

一, 简介


LSQUIC(LiteSpeed QUIC) 是一个 QUIC 和 HTTP3 功能的开源实现, 它是用 c 写的,提供 library ,client 和 server3 种方式, 而且它支持多种平台(Linux,ios ,android,Windows),而且文档非常完善. 本文主要讲如何在 linux 环境下编译 lsquic.


二, 环境


编译 lsquic 需要 CMake, zlib, ,BoringSSL 以及 libevent ,libevent 是其底层依赖的网络库.


三, 编译

1, boringssl 编译

  • 下载代码


git clone https://boringssl.googlesource.com/boringssl


  • 切换到固定分支

lsquic 依赖固定版本的 boringssl

git checkout a2278d4d2cabe73f6663e3299ea7808edfa306b9


  • 安装 golang

boringssl 依赖 golang, 所以需要先安装 golang

yum install -y golang


  • 开始编译

mkdir build && cd build && cmake ../ && make && cd ../


此时, include 和 libs 都已经编译完成, 由于 libcrypto.a 和 libssl.a 不在同一目录,我们需要把他们放到一起,便于后期编译 lsquic .


2, lsquic 编译


  • 下载代码

git clone https://github.com/litespeedtech/lsquic.gitcd lsquicgit submodule initgit submodule update
复制代码


  • 配置环境

cmake -DBORINGSSL_INCLUDE=/home/code/boringssl/include -DBORINGSSL_LIB=/home/code/boringssl/openssl/libs .
复制代码


  • 编译

make


  • 运行单元测试

make test


四, 编译问题及解决方法


编译的时候遇到几个编译错误, 记录如下:

1,boringssl 编译问题

  • 错误信息

[  0%] Generating crypto_test_data.ccgo: golang.org/x/crypto@v0.0.0-20200622213623-75b288015ac9: Get "https://proxy.golang.org/golang.org/x/crypto/@v/v0.0.0-20200622213623-75b288015ac9.mod": dial tcp 142.251.43.17:443: i/o timeoutmake[2]: *** [CMakeFiles/crypto_test_data.dir/build.make:226: crypto_test_data.cc] Error 1make[2]: *** Deleting file 'crypto_test_data.cc'make[1]: *** [CMakeFiles/Makefile2:134: CMakeFiles/crypto_test_data.dir/all] Error 2make: *** [Makefile:84: all] Error 2
复制代码
  • 解决办法

go env -w GOPROXY=https://goproxy.cn
复制代码


2,lsquic 编译问题

  • 错误信息

[root@localhost lsquic]# cmake -DBORINGSSL_INCLUDE=/home/code/boringssl/include -DBORINGSSL_LIB=/home/code/boringssl/openssl/libs .-- Build type: Debug-- AddressSanitizer is OFF-- Compiler flags:   -DLSQUIC_DEBUG_NEXT_ADV_TICK=1 -DLSQUIC_CONN_STATS=1 -Wall -Wextra -Wno-unused-parameter -fno-omit-frame-pointer -Wno-missing-field-initializers -O0 -g3 -- BoringSSL include directory /home/code/boringssl/include-- Found /home/code/boringssl/openssl/libs library: /home/code/boringssl/openssl/libs/libssl.a-- Found /home/code/boringssl/openssl/libs library: /home/code/boringssl/openssl/libs/libcrypto.a-- /home/code/boringssl/openssl/libs library not found-- zlib not found-- Found event: /usr/lib64/libevent.so-- sphinx-build not found: docs won't be madeCMake Error: The following variables are used in this project, but they are set to NOTFOUND.Please set them or make sure they are set and tested correctly in the CMake files:
复制代码


  • 解决办法

通过手动编译 zlib,就可以了

git clone https://github.com/madler/zlib./configuremake&&make install
复制代码


用户头像

糖米唐爹

关注

还未添加个人签名 2020.08.12 加入

还未添加个人简介

评论

发布
暂无评论
linux lsquic  编译