2016-07-21 5 views
3

私はクロスコンパイラarm-linux-gccでlibpcapをコンパイルしようとしています。私は実行すると、私はエラーを取得する「作る」:libpcapコンパイル時に競合するタイプ

./pcap-linux.c:254:14: conflicting types for socklen_t /usr/arm-linux-gnueabi/include/unistd.h:275:21: note previous declaration of 'socklen_t' 

私はまた、共通のgccを使用して、それをコンパイルしようとしたが、私は同じエラーを持っています。私はubuntuで働いています。

答えて

3

pcap-linux.cは、次のようにエイリアスを作るこの問題を解決する方法:

#ifndef HAVE_SOCKLEN_T 
typedef int  socklen_t; 
#endif 

あなたはコンパイラや一部のヘッダに

#define HAVE_SOCKLEN_T 

を入れて-DHAVE_SOCKLEN_Tを渡す必要があります(通常はconfigureによって自動的に行われますスクリプトなどで、config.hを生成します)。

ビルドの設定手順をスキップしたようですので、別の奇妙なビルドエラーを見てみましょう。

+0

ご回答いただきありがとうございます。 奇妙な問題があります。ファイル内にHAVE_SOCKLEN_Tを定義するか、DEFSのmakefileに定義すると、同じエラーが残っています – kmbm

+0

'configure --help'は何を伝えますか? – alk

+0

unfortunatelly nothing – kmbm

関連する問題