0

mingw でこのエラーが発生しました: pr1.c はファイル名です

私はいくつかの問題に直面し、次のようなライブラリを追加しましたが、現在これらのエラーが発生しています:

$ gcc pr1.c -o pr1.exe -lwsock32 -lws2_32

pr1.c: In function 'main':
pr1.c:54:2: warning: incompatible implicit declaration of built-in function 'b
zero' [enabled by default]
C:\Users\rak\AppData\Local\Temp\ccMtb7Wt.o:pr1.c:(.text+0xc9): undefined refe
rence to `inet_pton'
C:\Users\rak\AppData\Local\Temp\ccMtb7Wt.o:pr1.c:(.text+0xe2): undefined refe
rence to `bzero'
C:\Users\rak\AppData\Local\Temp\ccMtb7Wt.o:pr1.c:(.text+0x1b5): undefined ref
erence to `bzero'
C:\Users\rak\AppData\Local\Temp\ccMtb7Wt.o:pr1.c:(.text+0x224): undefined ref
erence to `bzero'
c:/mingw/bin/../lib/gcc/mingw32/4.7.2/../../../../mingw32/bin/ld.exe: C:\Users\rak\AppData\Local\Temp\ccMtb7Wt.o: bad reloc address 0x20 in section `.eh_frame'
c:/mingw/bin/../lib/gcc/mingw32/4.7.2/../../../../mingw32/bin/ld.exe: final link
 failed: Invalid operation
collect2.exe: error: ld returned 1 exit status
4

2 に答える 2

2
#include <string.h>

エラーメッセージは、gcc にbzero組み込み関数があることを示しています。ただし、スコープ内にプロトタイプがない場合、使用法はint(デフォルトの戻り値の型) を返す関数を参照していると見なされます。したがって、組み込み関数と一致せず、gcc はリンカにバックを渡すだけで、同様にそのような関数は見つかりません。ヘッダー ファイルを追加して、コンパイラが正しいプロトタイプを見つけられるようにします。

次のような方法で有効 にする必要があるかもしれませんbzero:

#define _BSD_SOURCE

bzeroそれでもエラーが解消されない場合は、実際にはそれを捨てて を使用する必要がありますmemset

の場合、以下inet_ptonも必要です。

#include <arpa/inet.h>

Windows でのソケット プログラミングに関するこのメモも役に立つかもしれません: Beej's Guide から

于 2013-04-12T08:32:41.830 に答える