Компиляция systrace дает "два или более типов данных в спецификаторах объявления"

Я пытался скомпилировать 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 ответ

Решение

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

#define in_addr_t unsigned long

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


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

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

Другие вопросы по тегам