step1、安装依赖
下载时 | git |
编译时 | cmake、ninja、gcc / GCC | Clang / LLVM、CUnit |
运行时 | glibc ( libc.so 、ld-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_WERROR | BOOL | OFF | 是否将警告 当作错误 |
ENABLE_DEBUG | BOOL | OFF | 调试选项。 ON: 相当于CPPFLAGS += "-DDENUG" OFF: 相当于CPPFLAGS += "-DNDENUG" |
ENABLE_ASAN | BOOL | OFF | 是否开启编译器 的Address Sanitizer特性 |
ENABLE_LIB_ONLY | BOOL | OFF | ON: 只编译lib OFF: 编译lib 和examples |
CUNIT_INCLUDE_DIR | PATH | 指定CUnit的头文件 所在目录 | |
CUNIT_LIBRARY | FILEPATH | 设置libcunit.{a | so | dylib}的路径 | |
LIBEV_INCLUDE_DIR | PATH | 指定libev的头文件 所在目录 | |
LIBEV_LIBRARY | FILEPATH | 设置libev.{a | so | dylib}的路径 | |
LIBNGHTTP3_INCLUDE_DIR | PATH | 指定nghttp3的头文件 所在目录 | |
LIBNGHTTP3_LIBRARY | FILEPATH | 设置libnghttp3.{a | so | dylib}的路径 | |
ENABLE_GNUTLS | BOOL | ON | 是否使用GnuTLS |
GNUTLS_INCLUDE_DIR | PATH | 指定GnuTLS的头文件 所在目录 | |
GNUTLS_LIBRARY | FILEPATH | 设置libgnutls.{a | so | dylib}的路径 | |
ENABLE_OPENSSL | BOOL | ON | 是否使用OpenSSL |
OPENSSL_INCLUDE_DIR | PATH | 指定OpenSSL的头文件 所在目录 | |
OPENSSL_SSL_LIBRARY | FILEPATH | 设置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