2012-01-06 14 views
0

私はUbuntuでsystrace(1.6g)をコンパイルしようとしています。私はlibevent 2.0.16を使用していたとき、私は次のコンパイルエラーを取得する:誰でも提供できますsystraceをコンパイルすると「宣言指定子に2つ以上のデータ型があります」

/* Internet address. */ 
typedef uint32_t in_addr_t; 
struct in_addr 
    { 
    in_addr_t s_addr; 
    }; 

In file included from /usr/include/netdb.h:28, 
       from /usr/include/event2/util.h:63, 
       from /usr/include/evutil.h:37, 
       from /usr/include/event.h:57, 
       from systrace.c:67: 
/usr/include/netinet/in.h:141: error: two or more data types in declaration specifiers 
/usr/include/netinet/in.h:141: error: two or more data types in declaration specifiers 

これらは/usr/include/netinet/in.h内の対応する行です私がnetinet/in.hで何を変更して動作させることができるかについての洞察はありますか?

答えて

3

あなたはconfig.hに見て(./configureを実行することによって作成される)とラインに

#define in_addr_t unsigned long 

を見つけるかもしれない、それをコメントアウト(または削除)、あなたは、少なくともこの明らかに何らかの形で壊れたパッケージをコンパイルするには更なるかもしれません。


systrace 1.6gは静かなので、libevent 1.x.yを使用してコンパイルする必要があるかもしれません。

現在のlibevent 1パッケージhereをダウンロードしたい場合があります。

+0

libevent-1.4.14b-stableを使用すると、make:http://pastie.org/3137269を実行するとこのエラーメッセージが表示されます。 libevent-1.0eと同じ結果になります。私もgcc-3.4を使ってみましたが、libevent 2.0.16でも同じエラーメッセージが出てきました。何が起こっているか考えてみませんか? – vikhyat

+0

@celebrus:新しく編集した投稿を見てください。 – alk

+0

私の 'config.h'にはこの2行が含まれていて、それを削除すると動作します – gipi

関連する問題