代码之家  ›  专栏  ›  技术社区  ›  eftshift0

nginx模块:编译但无法链接新库

  •  0
  • eftshift0  · 技术社区  · 4 年前

    我改了 auto/os/linux libx

    +ngx_feature="libx"
    +ngx_feature_name="NGX_HAVE_LIBX"
    +ngx_feature_run=no
    +ngx_feature_incs="#include <libx.h>"
    +ngx_feature_path=
    +ngx_feature_libs=-lx
    +ngx_feature_test="libx_init();"
    +. auto/feature
    

    然后,在模块代码中我做了 #if 他正在检查 NGX_HAVE_LIBX ... 比如:

    #if (NGX_HAVE_LIBX)
       libx_init();
    #endif
    

    它就像一个符咒。。。。当我跑的时候 auto/configure

    checking for libx... found
    

    但是 -lx cc/ld 在构建决赛时 objs/nginx 二元的。我本以为在检测到该功能之后 自动/操作系统/linux 会的 自动地 创建Makefile时添加到链接阶段。。。但显然不是这样,所以我知道我错过了一些东西。。。我需要做什么额外的步骤来完成它?

    master 来自nginx镜像的分支)。

    1 回复  |  直到 4 年前
        1
  •  0
  •   eftshift0    4 年前

    我想我明白了。

    我需要添加如下内容:

    +ngx_feature="libx"
    +ngx_feature_name="NGX_HAVE_LIBX"
    +ngx_feature_run=no
    +ngx_feature_incs="#include <libx.h>"
    +ngx_feature_path=
    +ngx_feature_libs=-lx
    +ngx_feature_test="libx_init();"
    +. auto/feature
    
    if [ $ngx_found = yes ]; then
        CORE_LIBS="$CORE_LIBS -lx"
        NGX_LIBDL="-lx"
    fi