Recently in the study of the Quic agreement, tried some Quic related open source projects, mainly C,c++,go and other languages written. Here is a record of my tossing ngtcp2 process.
The basic idea is to refer to the project's readme on GitHub. Because it is Ubuntu 16.04, a lot of dependencies are basically satisfied, such as the GCC version is 5.4.0. Quic relies on TLS 1.3 is installed under the source directory of OpenSSL, is not installed in the system library, this is more convenient to use.
git clone--depth 1 Https://github.com/openssl/openssl
./config enable-tls1_3--prefix= $PWD/build
git clone https://github.com/ngtcp2/ngtcp2
./configure pkg_config_path= $PWD/.. /openssl/build/lib/pkgconfig ldflags= "-wl,-rpath, $PWD/. /openssl/build/lib "
make-j$ (nproc) Check
Generate Certificates and keys
OpenSSL genrsa-out Server.key 2048
OpenSSL req-new-x509-key server.key-out server.crt-days 3650
Open two terminals, turn on client and server, respectively
./client 127.0.0.1 4433-i
./server 127.0.0.1 4433 Server.key server.crt
All operating procedures are identical to those on the project README.