在Ubuntu-9.10上安装libnet-0.10.11时出现问题

在Ubuntu-9.10上安装libnet-0.10.11时出现问题,ubuntu,libnet,Ubuntu,Libnet,这就是我所做的。。。 #tar-xzvf libnet-0.10.11.tar.gz #光盘库 然后我将linux.mak文件复制到父目录中的port.mak文件。 然后,如文档所述,我在当前目录中使用make naman@naman-laptop:~/Desktop/Software/libnet$ make make -C lib/ lib make[1]: Entering directory `/home/naman/Desktop/Software/libnet/lib' gcc -O

这就是我所做的。。。 #tar-xzvf libnet-0.10.11.tar.gz #光盘库

然后我将linux.mak文件复制到父目录中的port.mak文件。 然后,如文档所述,我在当前目录中使用make

naman@naman-laptop:~/Desktop/Software/libnet$ make
make -C lib/ lib
make[1]: Entering directory `/home/naman/Desktop/Software/libnet/lib'
gcc -O2 -Wall -Werror -Wno-unused -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -g -I../include -Iinclude -DTARGET_LINUX   -c -o core/config.o core/config.c
cc1: warnings being treated as errors
core/config.c: In function ‘__libnet_internal__seek_section’:
core/config.c:87: error: ignoring return value of ‘fgets’, declared with attribute warn_unused_result
core/config.c: In function ‘__libnet_internal__get_setting’:
core/config.c:111: error: ignoring return value of ‘fgets’, declared with attribute warn_unused_result
make[1]: *** [core/config.o] Error 1
make[1]: Leaving directory `/home/naman/Desktop/Software/libnet/lib'
make: *** [lib] Error 2

谁能给我详细解释一下错误,以及如何纠正它?任何帮助都将不胜感激

看起来您正在尝试在较新的系统上编译较旧的库,并且自编写此库以来,
gcc
中添加了新的警告

由于Makefile将警告视为错误,(您可以看出,因为它打印了
cc1:将警告视为错误
),因此警告
warn\u unused\u result
错误会导致编译失败

您的选择是:

  • 编辑生成文件并删除任何
    -Werror
    参数
  • 修复根本原因(代码中未使用的fgets()返回值)
  • 查找要使用的其他库-为什么要在系统上使用此库(可能未维护)

  • 看起来您正在尝试在较新的系统上编译较旧的库,并且自编写此库以来,新的警告已添加到
    gcc

    由于Makefile将警告视为错误,(您可以看出,因为它打印了
    cc1:将警告视为错误
    ),因此警告
    warn\u unused\u result
    错误会导致编译失败

    您的选择是:

  • 编辑生成文件并删除任何
    -Werror
    参数
  • 修复根本原因(代码中未使用的fgets()返回值)
  • 查找要使用的其他库-为什么要在系统上使用此库(可能未维护)
  • ,这是一个古老的libnet版本,现代版本使用autoconf,您需要使用这样一个旧版本吗

    我建议从您正在使用的makefile中删除
    -Wall
    -Werror

    ,这是一个古老的libnet版本,现代版本使用autoconf,您需要使用这样一个旧版本吗

    我建议从您正在使用的makefile中删除
    -Wall
    -Werror