当前位置: 技术问答>linux和unix
编译 dhcp 时候的问题~~ 谢谢大家进来看看^_^
来源: 互联网 发布时间:2016-03-06
本文导语: 我想把支持DHCPv6 给关掉, 所以设置了 #define DHCPv6 0 但在discover.c理有这样一个调用的地方: #ifdef DHCPv6 printf("######################### [%d]n",DHCPv6); ifaces->fp6 = fopen("/proc/net/if_inet6", "r"); if (ifaces->fp6 == N...
我想把支持DHCPv6 给关掉,
所以设置了
#define DHCPv6 0
但在discover.c理有这样一个调用的地方:
#ifdef DHCPv6
printf("######################### [%d]n",DHCPv6);
ifaces->fp6 = fopen("/proc/net/if_inet6", "r");
if (ifaces->fp6 == NULL) {
log_error("Error opening '/proc/net/if_inet6' to "
"list IPv6 interfaces; %m");
return 0;
}
#endif
代码还是跑进去了呢?
想知道为什么啊?
所以设置了
#define DHCPv6 0
但在discover.c理有这样一个调用的地方:
#ifdef DHCPv6
printf("######################### [%d]n",DHCPv6);
ifaces->fp6 = fopen("/proc/net/if_inet6", "r");
if (ifaces->fp6 == NULL) {
log_error("Error opening '/proc/net/if_inet6' to "
"list IPv6 interfaces; %m");
return 0;
}
#endif
代码还是跑进去了呢?
想知道为什么啊?
|
你前面不是定义了宏
#define DHCPv6 0
所以下面的代码中#ifdef DHCPv6为真,就会执行下面的代码.并且DHCPv6为0.
除非
#ifdef DHCPv6
#undef DHCPv6
#endif
#ifdef DHCPv6
printf("######################### [%d]n",DHCPv6);
ifaces-> fp6 = fopen("/proc/net/if_inet6", "r");
if (ifaces-> fp6 == NULL) {
log_error("Error opening '/proc/net/if_inet6' to "
"list IPv6 interfaces; %m");
return 0;
}
#endif
#define DHCPv6 0
所以下面的代码中#ifdef DHCPv6为真,就会执行下面的代码.并且DHCPv6为0.
除非
#ifdef DHCPv6
#undef DHCPv6
#endif
#ifdef DHCPv6
printf("######################### [%d]n",DHCPv6);
ifaces-> fp6 = fopen("/proc/net/if_inet6", "r");
if (ifaces-> fp6 == NULL) {
log_error("Error opening '/proc/net/if_inet6' to "
"list IPv6 interfaces; %m");
return 0;
}
#endif
|
楼上给出了答案,还有一个办法 : "#ifdef DHCPv6" => "#if DHCPv6"