[英]typedef redefinition in 3rdparty library
我在项目中使用log4cpp
和libnet
,但是有问题。
在log4cpp
, config-win32.h
typedef u_long in_addr_t
同样在libnet
, in_systm.h
typedef u_int32_t in_addr_t;
那么如何优雅地修复它呢?
您可以通过在包含标头时进行变通来避免这种情况:
#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
。
您可以在log4cpp
或libnet
中用另一个单词替换in_addr_t
。
如果in_addr_t
出现不多。 您可以将typedef……
移至使用in_addr_t
的{}
处。 如果在代码块中使用,typedef的范围为{}
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.