0

Ubuntuでsystrace(1.6g)をコンパイルしようとしています。libevent 2.0.16 を使用すると、次のコンパイル エラーが発生します。

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 内の対応する行です。

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

netinet/in.h で何を変更して動作させることができるかについて、誰かが洞察を提供できますか?

4

1 に答える 1

3

config.h(を実行して作成された./configure)を調べて、行を見つけることができます

#define in_addr_t unsigned long

コメントアウト (または削除) すると、少なくとも、この明らかに何らかの形で壊れたパッケージをさらにコンパイルできるようになる可能性があります。


推測: systrace 1.6g はかなり古いので、libevent 1.xy を使用してコンパイルする必要があるかもしれません。

現在の libevent 1 パッケージをここからダウンロードしてください。

于 2012-01-06T13:04:09.087 に答える