Компиляция systrace дает «два или более типов данных в спецификаторах объявления» - PullRequest
0 голосов
/ 06 января 2012

Я пытался скомпилировать systrace (1.6g) в Ubuntu.Когда я использую 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, чтобы заставить его работать?

1 Ответ

3 голосов
/ 06 января 2012

Вы можете заглянуть в config.h (созданный запуском ./configure) и найти строку

#define in_addr_t unsigned long

Закомментировать (или удалить), и вы можете, по крайней мере, получить дальнейшую компиляцию этого, очевидно,каким-то образом поврежденный пакет.


Просто предположение: поскольку systrace 1.6g довольно старая, может потребоваться использовать libevent 1.xy для его компиляции.

Вы можете загрузить текущий пакет libevent 1 здесь .

...