build ngtcp2 for current host

step1、安装依赖

下载时git
编译时cmakeninjagcc / GCC | Clang / LLVMCUnit
运行时glibc ( libc.sold-linux-x86-64.so )
example依赖:

step2、使用git命令下载ngtcp2源码

git clone https://github.com/ngtcp2/ngtcp2.git

step3、进入ngtcp2目录

cd ngtcp2

step4、查看ngtcp2目录中的内容

step5、使用cmake命令配置编译参数

cmake [option]... -D<变量>=<值> -S <sourceDIR> -B <buildDIR>
本软件特有的变量类型默认值说明
ENABLE_WERRORBOOLOFF是否将警告当作错误
ENABLE_DEBUGBOOLOFF
调试选项。
ON: 相当于CPPFLAGS += "-DDENUG"
OFF:相当于CPPFLAGS += "-DNDENUG"
ENABLE_ASANBOOLOFF是否开启编译器Address Sanitizer特性
ENABLE_LIB_ONLYBOOLOFF
ON: 只编译lib
OFF:编译libexamples
CUNIT_INCLUDE_DIRPATH指定CUnit头文件所在目录
CUNIT_LIBRARYFILEPATH设置libcunit.{a | so | dylib}的路径
LIBEV_INCLUDE_DIRPATH指定libev头文件所在目录
LIBEV_LIBRARYFILEPATH设置libev.{a | so | dylib}的路径
LIBNGHTTP3_INCLUDE_DIRPATH指定nghttp3头文件所在目录
LIBNGHTTP3_LIBRARYFILEPATH设置libnghttp3.{a | so | dylib}的路径
ENABLE_GNUTLSBOOLON是否使用GnuTLS
GNUTLS_INCLUDE_DIRPATH指定GnuTLS头文件所在目录
GNUTLS_LIBRARYFILEPATH设置libgnutls.{a | so | dylib}的路径
ENABLE_OPENSSLBOOLON是否使用OpenSSL
OPENSSL_INCLUDE_DIRPATH指定OpenSSL头文件所在目录
OPENSSL_SSL_LIBRARYFILEPATH设置libssl.{a | so | dylib}的路径

示例:

cmake \
    -DCMAKE_BUILD_TYPE=Release \
    -DCMAKE_INSTALL_PREFIX=/usr \
    -G Ninja \
    -Wno-dev \
    -S . \
    -B build.d

step6、使用gmake编译并安装

make --directory=build install