В моем проекте используется log4cpp
и libnet
, но есть проблема.typedef redefinition в библиотеке 3rdparty
В log4cpp
, config-win32.h
typedef u_long in_addr_t
Также в libnet
, in_systm.h
typedef u_int32_t in_addr_t;
Так как это исправить элегантно?
- не изменяет исходные файлы библиотека
- меньше работы
Извините, я могу упростить ситуацию. Я включаю 'libnet.h' и' log4cpp' некоторый заголовок. Я не использую 'in_addr_t'. Я не уверен, что я сказал ясно. – qianchenglong
Если вы не используете 'in_addr_t', вам не нужно беспокоиться о том, что вы собираетесь использовать. Это работает, несмотря на это. На одном уровне это обман; на другом уровне он доставит вас через горб. Это было бы сложнее в C++, в общем, потому что имена типов запекаются в имена функций и т. Д. Но в C все будет в порядке. (Вы также можете уйти с ним на C++, если никогда не используете функцию с одним из параметров 'in_addr_t'. Если вы использовали функции с параметрами' in_addr_t', вам пришлось бы тщательно отделить код, используя 'log4cpp' из кода с помощью 'libnet'. –