简体   繁体   English

autotools 配置脚本中的版本错误

[英]Version error in autotools configure script

I am trying to cross-compile libnetfilter_queue-1.0.2 from source and my build environment variables are pointing to correct cross-toolchain and dependent library paths.我正在尝试从源代码交叉编译libnetfilter_queue-1.0.2 ,并且我的构建环境变量指向正确的交叉工具链和依赖库路径。

Still I get the following error on ./configure我仍然在./configure上收到以下错误

checking for LIBNFNETLINK... no
configure: error: Package requirements (libnfnetlink >= 0.0.41) were not met:

No package 'libnfnetlink' found

Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.

Alternatively, you may set the environment variables LIBNFNETLINK_CFLAGS
and LIBNFNETLINK_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.

My configure command is :我的配置命令是:

CFLAGS="-I/home/user/openwrt/openwrt/staging_dir/target-powerpc_8540_uClibc-0.9.33.2/lib/ 
-I/home/user/openwrt/openwrt/staging_dir/target-powerpc_8540_uClibc-0.9.33.2/usr/lib/ -I/home/user/openwrt/openwrt/staging_dir/target-powerpc_8540_uClibc-0.9.33.2/include/ 
-I/home/user/openwrt/openwrt/staging_dir/target-powerpc_8540_uClibc-0.9.33.2/usr/include"  
LDFLAGS="-L/home/user/openwrt/openwrt/staging_dir/target-powerpc_8540_uClibc-0.9.33.2/lib/ 
-L/home/user/openwrt/openwrt/staging_dir/target-powerpc_8540_uClibc-0.9.33.2/usr/lib/" 
./configure --build=x86_64-unknown-linux-gnu --host=powerpc-openwrt-linux-uclibcspe  
--prefix=/home/user/openwrt/openwrt/staging_dir/target-powerpc_8540_uClibc-0.9.33.2

Also I have the libnfnetlink.so.0.2.0 already installed in one of the -I and -L paths passed to ./configure.此外,我已经将libnfnetlink.so.0.2.0安装在传递给 ./configure 的 -I 和 -L 路径之一中。

Inspite of that, why do i get the error.尽管如此,为什么我会收到错误。

Edit: SOme extra information.编辑:一些额外的信息。

config.log配置日志

configure:11631: checking for LIBNFNETLINK
configure:11638: $PKG_CONFIG --exists --print-errors "libnfnetlink >= 0.0.41"
Package libnfnetlink was not found in the pkg-config search path.
Perhaps you should add the directory containing `libnfnetlink.pc'
to the PKG_CONFIG_PATH environment variable
No package 'libnfnetlink' found
configure:11641: $? = 1
configure:11672: result: no
No package 'libnfnetlink' found
configure:11688: error: Package requirements (libnfnetlink >= 0.0.41) were not met:

No package 'libnfnetlink' found

Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.

ac_cv_env_LIBNFNETLINK_CFLAGS_set=
ac_cv_env_LIBNFNETLINK_CFLAGS_value=
ac_cv_env_LIBNFNETLINK_LIBS_set=set
ac_cv_env_LIBNFNETLINK_LIBS_value=:/home/jagadeesh/openwrt/openwrt/staging_dir/target-powerpc_8540_uClibc-0.9.33.2/lib/


pkg_cv_LIBNFNETLINK_LIBS=:/home/jagadeesh/openwrt/openwrt/staging_dir/target-powerpc_8540_uClibc-0.9.33.2/lib/


LIBNFNETLINK_CFLAGS=''
LIBNFNETLINK_LIBS=':/home/jagadeesh/openwrt/openwrt/staging_dir/target-powerpc_8540_uClibc-0.9.33.2/lib/'

What is happening in the configure script for LIBNFNETLINK check: LIBNFNETLINK 检查的配置脚本中发生了什么:

pkg_failed=no
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBNFNETLINK" >&5
$as_echo_n "checking for LIBNFNETLINK... " >&6; }

if test -n "$LIBNFNETLINK_CFLAGS"; then
    pkg_cv_LIBNFNETLINK_CFLAGS="$LIBNFNETLINK_CFLAGS"
 elif test -n "$PKG_CONFIG"; then
    if test -n "$PKG_CONFIG" && \
    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libnfnetlink >= 0.0.41\""; } >&5
  ($PKG_CONFIG --exists --print-errors "libnfnetlink >= 0.0.41") 2>&5
  ac_status=$?
  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
  test $ac_status = 0; }; then
  pkg_cv_LIBNFNETLINK_CFLAGS=`$PKG_CONFIG --cflags "libnfnetlink >= 0.0.41" 2>/dev/null`
                      test "x$?" != "x0" && pkg_failed=yes
else
  pkg_failed=yes
fi
 else
    pkg_failed=untried
fi
if test -n "$LIBNFNETLINK_LIBS"; then
    pkg_cv_LIBNFNETLINK_LIBS="$LIBNFNETLINK_LIBS"
 elif test -n "$PKG_CONFIG"; then
    if test -n "$PKG_CONFIG" && \
    { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libnfnetlink >= 0.0.41\""; } >&5
  ($PKG_CONFIG --exists --print-errors "libnfnetlink >= 0.0.41") 2>&5
  ac_status=$?
  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
  test $ac_status = 0; }; then
  pkg_cv_LIBNFNETLINK_LIBS=`$PKG_CONFIG --libs "libnfnetlink >= 0.0.41" 2>/dev/null`
                      test "x$?" != "x0" && pkg_failed=yes
else
  pkg_failed=yes
fi
 else
    pkg_failed=untried
fi



if test $pkg_failed = yes; then
        { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }

if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
        _pkg_short_errors_supported=yes
else
        _pkg_short_errors_supported=no
fi
        if test $_pkg_short_errors_supported = yes; then
                LIBNFNETLINK_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libnfnetlink >= 0.0.41" 2>&1`
        else
                LIBNFNETLINK_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libnfnetlink >= 0.0.41" 2>&1`
        fi
        # Put the nasty error message in config.log where it belongs
        echo "$LIBNFNETLINK_PKG_ERRORS" >&5

        as_fn_error $? "Package requirements (libnfnetlink >= 0.0.41) were not met:

$LIBNFNETLINK_PKG_ERRORS



if test $pkg_failed = yes; then
        { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }

if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
        _pkg_short_errors_supported=yes
else
        _pkg_short_errors_supported=no
fi
        if test $_pkg_short_errors_supported = yes; then
                LIBNFNETLINK_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libnfnetlink >= 0.0.41" 2>&1`
        else
                LIBNFNETLINK_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libnfnetlink >= 0.0.41" 2>&1`
        fi
        # Put the nasty error message in config.log where it belongs
        echo "$LIBNFNETLINK_PKG_ERRORS" >&5

        as_fn_error $? "Package requirements (libnfnetlink >= 0.0.41) were not met:
$LIBNFNETLINK_PKG_ERRORS

You have the libnfnetlink binary installed but to satisfy ./configure for libnetfilter_queue you need to install the libnfnetlink development library as well, because libnetfilter_queue wants its headers at compiletime.您已经安装了libnfnetlink二进制文件,但为了满足libnetfilter_queue ./configure要求,您还需要安装libnfnetlink开发库,因为libnetfilter_queue在编译时需要它的头文件。 This will also provide the pkg_config information that ./configure is looking for, eg in:这还将提供./configure正在寻找的pkg_config信息,例如:

/usr/lib/x86_64-linux-gnu/pkgconfig/libnfnetlink.pc

You don't say what your distro is but on debian derivatives你不说你的发行版是什么,而是说 debian 衍生品

sudo apt-get install libnfnetlink-dev

will solve this problem.将解决这个问题。

Library-checks in a ./configure script normally require the development library. ./configure脚本中的库检查通常需要开发库。

PS I just remembered that you're cross-compiling, so pkg_config will need to locate the development library info for your target . PS 我只记得你是交叉编译,所以pkg_config需要找到你的目标的开发库信息。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM