标签:check gem 注意 处理 enable 必须 利用 行修改 修改版本
编译环境:deepin 15.11桌面版
nghttp2下载地址:https://github.com/nghttp2/nghttp2
emm只能在类Linux环境才能完整编译,想在Windows里面使用只能编译成dll,再进行引用开发使用,不能直接搞。
如果你只需要libnghttp2库,那么上面的软件包就是你需要安装的,使用--enable-lib-only ,以确保只有libnghttp2构建。这避免了与构建捆绑应用程序相关的潜在的构建错误。
nghttp
,nghttpd
, nghttpx
和h2load
在)src
目录,需要以下包:ALPN支持需要OpenSSL>=1.0.2(2015年1月22日发布),可以使用LibreSSL>=2.2.0代替OpenSSL,但在编写时OpenSSL比LibreSSL具有更多功能。
-a
选项(从下载的资源获取链接的资源)nghttp
,需要以下包:nghttpd
和nghttpx
)中的堆碎片,建议使用jemalloc:jemalloc
注意
由于受到限制,Alpine Linux目前不支持malloc替换。查看问题#762中的详细信息。
安装下面的这些需要的包吧
sudo apt-get install g++ make binutils autoconf automake autotools-dev libtool pkg-config zlib1g-dev libcunit1-dev libssl-dev libxml2-dev libev-dev libevent-dev libjansson-dev libc-ares-dev libjemalloc-dev libsystemd-dev cython python3-dev python-setuptools
--with-mruby
configure选项。请注意,在撰写本文时,Debian / Ubuntu中的libmruby-dev和mruby包不能用于nghttp2,因为它们不启用C ++ ABI。要构建mruby,需要以下包:nghttpx支持OpenSSL / LibreSSL的永不过时的特权分离引擎。简而言之,当像Heartbleed这样的严重漏洞被利用时,它可以最大限度地降低私钥泄漏的风险。默认情况下禁用。要启用它,请使用--with-neverbleed
configure选项。
编译libnghttp2 C源代码需要C99编译器。已知gcc 4.8就足够了。为了编译C ++源代码,需要gcc> = 6.0或clang> = 6.0。C ++源代码需要C ++ 14语言功能。
注意:
要在nghttpx中启用mruby支持,请使用--with-mruby
configure选项。
注意
Mac OS X用户可能需要--disable-threads
configure选项来禁用nghttpd,nghttpx和h2load中的多线程以防止它们崩溃。欢迎使用补丁程序在Mac OS X平台上进行多线程处理。
注意
要编译关联的应用程序(nghttp,nghttpd,nghttpx和h2load),必须使用--enable-app
configure选项并确保满足上面指定的要求。通常,配置脚本检查所需的依赖项以构建这些应用程序,并--enable-app
自动启用,因此您不必显式使用它。但是,如果您发现应用程序未构建,那么使用--enable-app
可能会找到原因,例如缺少依赖项。
注意
为了检测第三方库,使用了pkg-config(但是我们不对某些库使用pkg-config(例如,libev))。默认情况下,pkg-config *.pc
在标准位置搜索文件(例如,/ usr / lib / pkgconfig)。如果需要*.pc
在自定义位置使用 文件,请指定PKG_CONFIG_PATH
环境变量的路径 ,并将其传递给configure脚本,如下所示:
$ ./configure PKG_CONFIG_PATH=/path/to/pkgconfig
对于pkg配置管理库,*_CFLAG
和*_LIBS
环境变量的定义(例如,OPENSSL_CFLAGS
, OPENSSL_LIBS
)。为这些变量指定非空字符串会完全覆盖pkg-config。换句话说,如果指定了它们,则不会将pkg-config用于检测,并且用户有责任为这些变量指定正确的值。有关这些变量的完整列表,请运行./configure -h
。
nghttp2项目定期发布tar档案,其中包括nghttp2源代码和生成的构建文件。可以从“ 版本”页面下载它们。
从git构建nghttp2需要autotools开发包。从tar档案构建不需要它们,因此它更容易。通常的构建步骤如下:
$ tar xf nghttp2-XYZtar.bz2 $ cd nghttp2-XYZ $ ./configure $ make
这是重点
sudo apt install auto-apt #也可直接安装deb包 #http://mirrors.edge.kernel.org/ubuntu/pool/universe/a/auto-apt/auto-apt_0.3.24_amd64.deb #木的办法,奇葩的事情总会有很多 sudo apt install checkinstall sudo apt install libboost-dev sudo apt install libboost-all-dev git submodule update --init autoreconf -i automake autoconf auto-apt run ./configure --enable-app make sudo checkinstall -D -install=no --pkgversion=1.0 --pkgname=nghttp2-tools make install # 制作deb包 # 更多checkinstall用法请自行查找 #dpkg 安装deb包 dpkg -i package-file-name #dpkg 卸载deb包 dpkg -P package-file-name
configure.ac文件
找到进行修改即可
AC_PREREQ(2.61)
AC_INIT([nghttp2], [1.40.0-DEV], [t-tujikawa@users.sourceforge.net])
https://github.com/landv/nghttp2/releases
https://github.com/landv/nghttp2/releases/download/v1.39.11/nghttp2-tools_1.0-1_amd64.deb
标签:check gem 注意 处理 enable 必须 利用 行修改 修改版本
原文地址:https://www.cnblogs.com/landv/p/11313766.html