1

これが私がやったことです... #tar -xzvf libnet-0.10.11.tar.gz #cd libnet

次に、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

エラーの詳細と修正方法を教えてください。どんな助けでも大歓迎です。

4

2 に答える 2

1

https://github.com/sam-github/libnet、これは古代の libnet バージョンであり、最新のものは autoconf を使用しますが、そのような古いバージョンを使用する必要がありますか?

使用しているメイクファイルから と の両方-Wallを削除することをお勧めします。-Werror

于 2013-11-26T19:54:50.390 に答える
0

新しいシステムで古いライブラリをコンパイルしようとしているようでgcc、このライブラリが作成されてから新しい警告が追加されました。

Makefile にはエラーとして扱われる警告があるため (出力されたのでわかりますcc1: warnings being treated as errors)、警告warn_unused_resultエラーが原因でコンパイルが失敗しています。

オプションは次のいずれかです。

  1. -WerrorMakefile を編集し、パラメーターを削除します。
  2. 根本原因を修正する (コード内で使用されていない fgets() の戻り値)
  3. 使用する別のライブラリを見つけます - システムでこの (おそらくメンテナンスされていない) ライブラリを使用するのはなぜですか?
于 2011-02-05T06:15:17.923 に答える