我在项目中使用log4cpp
和libnet
,但是存在问题。
在log4cpp
,config-win32.h
typedef u_long in_addr_t
同样在libnet
,in_systm.h
typedef u_int32_t in_addr_t;
那么如何优雅地解决它?
答案 0 :(得分:1)
您可以通过在包含标题时使用解决方法来避免这种情况:
#define in_addr_t log4cpp_in_addr_t
#include "config-win32.h"
#undef in_addr_t
#define in_addr_t libnet_in_addr_t
#include "in_systm.h"
#undef in_addr_t
然后在您的代码中,使用log4cpp_in_addr_t
和libnet_in_addr_t
代替in_addr_t
。
答案 1 :(得分:0)
您可以将in_addr_t
替换为log4cpp
或libnet
中的其他字词。
如果in_addr_t
显得不多。您可以将typedef……
移至使用{}
的{{1}}。如果你在代码块中使用它,那么typedef的范围是in_addr_t
。