安装ipvsadm时出现下面所示错误,MARK

[root@localhost ipvsadm-1.26]# make
make -C libipvs
make[1]: Entering directory `/usr/local/soft/ipvsadm-1.26/libipvs'
gcc -Wall -Wunused -Wstrict-prototypes -g -fPIC -DLIBIPVS_USE_NL -DHAVE_NET_IP_VS_H -c -o libipvs.o libipvs.c
在包含自 libipvs.h:13 的文件中,
从 libipvs.c:23:
ip_vs.h:15:29: 错误:netlink/netlink.h:没有那个文件或目录
ip_vs.h:16:31: 错误:netlink/genl/genl.h:没有那个文件或目录
ip_vs.h:17:31: 错误:netlink/genl/ctrl.h:没有那个文件或目录
In file included from libipvs.h:13,
from libipvs.c:23:
ip_vs.h:520: 错误:数组元素的类型不完全
ip_vs.h:521: 错误:数组元素的类型不完全
ip_vs.h:522: 错误:数组元素的类型不完全
ip_vs.h:523: 错误:数组元素的类型不完全
ip_vs.h:524: 错误:数组元素的类型不完全
ip_vs.h:525: 错误:数组元素的类型不完全
libipvs.c: 在函数‘ipvs_nl_message’中:
libipvs.c:57: 警告:隐式声明函数‘nlmsg_alloc’
libipvs.c:57: 警告:赋值时将整数赋给指针,未作类型转换
libipvs.c:61: 警告:隐式声明函数‘genlmsg_put’
libipvs.c:61: 错误:‘NL_AUTO_PID’未声明(在此函数内第一次使用)
libipvs.c:61: 错误:(即使在一个函数内多次出现,每个未声明的标识符在其
libipvs.c:61: 错误:所在的函数内也只报告一次。)
libipvs.c:61: 错误:‘NL_AUTO_SEQ’未声明(在此函数内第一次使用)
libipvs.c: 在函数‘ipvs_nl_noop_cb’中:
libipvs.c:69: 错误:‘NL_OK’未声明(在此函数内第一次使用)
libipvs.c: 在文件层:
libipvs.c:72: 错误:expected declaration specifiers or ‘...’ before ‘nl_recvmsg_msg_cb_t’
libipvs.c: 在函数‘ipvs_nl_send_message’中:
libipvs.c:76: 警告:隐式声明函数‘nl_handle_alloc’
libipvs.c:76: 警告:赋值时将整数赋给指针,未作类型转换
libipvs.c:78: 警告:隐式声明函数‘nlmsg_free’
libipvs.c:82: 警告:隐式声明函数‘genl_connect’
libipvs.c:85: 警告:隐式声明函数‘genl_ctrl_resolve’
libipvs.c:91: 警告:隐式声明函数‘nl_handle_destroy’
libipvs.c:96: 警告:隐式声明函数‘nl_socket_modify_cb’
libipvs.c:96: 错误:‘NL_CB_VALID’未声明(在此函数内第一次使用)
libipvs.c:96: 错误:‘NL_CB_CUSTOM’未声明(在此函数内第一次使用)
libipvs.c:96: 错误:‘func’未声明(在此函数内第一次使用)
libipvs.c:99: 警告:隐式声明函数‘nl_send_auto_complete’
libipvs.c:102: 警告:隐式声明函数‘nl_recvmsgs_default’
libipvs.c: 在函数‘ipvs_init’中:
libipvs.c:127: 错误:提供给函数‘ipvs_nl_send_message’的实参太多
libipvs.c: 在函数‘ipvs_getinfo_parse_cb’中:
libipvs.c:149: 警告:隐式声明函数‘nlmsg_hdr’
libipvs.c:149: 警告:初始化时将整数赋给指针,未作类型转换
libipvs.c:152: 警告:隐式声明函数‘genlmsg_parse’
libipvs.c:159: 警告:隐式声明函数‘nla_get_u32’
libipvs.c:162: 错误:‘NL_OK’未声明(在此函数内第一次使用)
libipvs.c: 在函数‘ipvs_getinfo’中:
libipvs.c:176: 错误:提供给函数‘ipvs_nl_send_message’的实参太多
libipvs.c: 在函数‘ipvs_flush’中:
libipvs.c:199: 错误:提供给函数‘ipvs_nl_send_message’的实参太多
libipvs.c: 在函数‘ipvs_nl_fill_service_attr’中:
libipvs.c:215: 警告:隐式声明函数‘nla_nest_start’
libipvs.c:215: 警告:赋值时将整数赋给指针,未作类型转换
libipvs.c:219: 警告:隐式声明函数‘NLA_PUT_U16’
libipvs.c:222: 警告:隐式声明函数‘NLA_PUT_U32’
libipvs.c:225: 警告:隐式声明函数‘NLA_PUT’
libipvs.c:229: 警告:隐式声明函数‘NLA_PUT_STRING’
libipvs.c:236: 警告:隐式声明函数‘nla_nest_end’
libipvs.c:239: 警告:标号‘nla_put_failure’定义后未使用
libipvs.c: 在函数‘ipvs_add_service’中:
libipvs.c:255: 错误:提供给函数‘ipvs_nl_send_message’的实参太多
libipvs.c: 在函数‘ipvs_update_service’中:
libipvs.c:276: 错误:提供给函数‘ipvs_nl_send_message’的实参太多
libipvs.c: 在函数‘ipvs_del_service’中:
libipvs.c:296: 错误:提供给函数‘ipvs_nl_send_message’的实参太多
libipvs.c: 在函数‘ipvs_zero_service’中:
libipvs.c:321: 错误:提供给函数‘ipvs_nl_send_message’的实参太多
libipvs.c: 在函数‘ipvs_nl_fill_dest_attr’中:
libipvs.c:334: 警告:赋值时将整数赋给指针,未作类型转换
libipvs.c:348: 警告:标号‘nla_put_failure’定义后未使用
libipvs.c: 在函数‘ipvs_add_dest’中:
libipvs.c:366: 错误:提供给函数‘ipvs_nl_send_message’的实参太多
libipvs.c: 在函数‘ipvs_update_dest’中:
libipvs.c:396: 错误:提供给函数‘ipvs_nl_send_message’的实参太多
libipvs.c: 在函数‘ipvs_del_dest’中:
libipvs.c:425: 错误:提供给函数‘ipvs_nl_send_message’的实参太多
libipvs.c: 在函数‘ipvs_set_timeout’中:
libipvs.c:452: 错误:提供给函数‘ipvs_nl_send_message’的实参太多
libipvs.c:454: 警告:标号‘nla_put_failure’定义后未使用
libipvs.c: 在函数‘ipvs_start_daemon’中:
libipvs.c:473: 警告:赋值时将整数赋给指针,未作类型转换
libipvs.c:483: 错误:提供给函数‘ipvs_nl_send_message’的实参太多
libipvs.c: 在函数‘ipvs_stop_daemon’中:
libipvs.c:504: 警告:赋值时将整数赋给指针,未作类型转换
libipvs.c:514: 错误:提供给函数‘ipvs_nl_send_message’的实参太多
libipvs.c: 在文件层:
libipvs.c:526: 警告:‘struct nlattr’在形参表内部声明
libipvs.c: 在函数‘ipvs_parse_stats’中:
libipvs.c:530: 警告:隐式声明函数‘nla_parse_nested’
libipvs.c:548: 警告:隐式声明函数‘nla_get_u64’
libipvs.c: 在函数‘ipvs_services_parse_cb’中:
libipvs.c:562: 警告:初始化时将整数赋给指针,未作类型转换
libipvs.c:592: 警告:隐式声明函数‘nla_get_u16’
libipvs.c:598: 警告:隐式声明函数‘nla_data’
libipvs.c:599: 警告:传递‘memcpy’的第 2 个参数时将整数赋给指针,未作类型转换
/usr/include/string.h:44: 附注:需要类型‘const void * __restrict__’,但实参的类型为‘int’
libipvs.c:604: 警告:隐式声明函数‘nla_get_string’
libipvs.c:605: 警告:传递‘strncpy’的第 2 个参数时将整数赋给指针,未作类型转换
/usr/include/string.h:131: 附注:需要类型‘const char * __restrict__’,但实参的类型为‘int’
libipvs.c:610: 警告:传递‘strncpy’的第 2 个参数时将整数赋给指针,未作类型转换
/usr/include/string.h:131: 附注:需要类型‘const char * __restrict__’,但实参的类型为‘int’
libipvs.c:614: 警告:隐式声明函数‘nla_memcpy’
libipvs.c:618: 警告:传递‘ipvs_parse_stats’的第 2 个参数时在不兼容的指针类型间转换
libipvs.c:526: 附注:需要类型‘struct nlattr *’,但实参的类型为‘struct nlattr *’
libipvs.c: 在函数‘ipvs_get_services’中:
libipvs.c:649: 错误:‘NLM_F_DUMP’未声明(在此函数内第一次使用)
libipvs.c:650: 错误:提供给函数‘ipvs_nl_send_message’的实参太多
libipvs.c: 在函数‘ipvs_dests_parse_cb’中:
libipvs.c:728: 警告:初始化时将整数赋给指针,未作类型转换
libipvs.c:759: 警告:传递‘memcpy’的第 2 个参数时将整数赋给指针,未作类型转换
/usr/include/string.h:44: 附注:需要类型‘const void * __restrict__’,但实参的类型为‘int’
libipvs.c:771: 警告:传递‘ipvs_parse_stats’的第 2 个参数时在不兼容的指针类型间转换
libipvs.c:526: 附注:需要类型‘struct nlattr *’,但实参的类型为‘struct nlattr *’
libipvs.c: 在函数‘ipvs_get_dests’中:
libipvs.c:809: 错误:‘NLM_F_DUMP’未声明(在此函数内第一次使用)
libipvs.c:813: 警告:赋值时将整数赋给指针,未作类型转换
libipvs.c:829: 错误:提供给函数‘ipvs_nl_send_message’的实参太多
libipvs.c: 在函数‘ipvs_get_service’中:
libipvs.c:939: 错误:提供给函数‘ipvs_nl_send_message’的实参太多
libipvs.c: 在函数‘ipvs_timeout_parse_cb’中:
libipvs.c:972: 警告:初始化时将整数赋给指针,未作类型转换
libipvs.c:986: 错误:‘NL_OK’未声明(在此函数内第一次使用)
libipvs.c: 在函数‘ipvs_get_timeout’中:
libipvs.c:1005: 错误:提供给函数‘ipvs_nl_send_message’的实参太多
libipvs.c: 在函数‘ipvs_daemon_parse_cb’中:
libipvs.c:1023: 警告:初始化时将整数赋给指针,未作类型转换
libipvs.c:1048: 警告:传递‘strncpy’的第 2 个参数时将整数赋给指针,未作类型转换
/usr/include/string.h:131: 附注:需要类型‘const char * __restrict__’,但实参的类型为‘int’
libipvs.c:1051: 错误:‘NL_OK’未声明(在此函数内第一次使用)
libipvs.c: 在函数‘ipvs_get_daemon’中:
libipvs.c:1071: 错误:‘NLM_F_DUMP’未声明(在此函数内第一次使用)
libipvs.c:1072: 错误:提供给函数‘ipvs_nl_send_message’的实参太多
make[1]: *** [libipvs.o] 错误 1
make[1]: Leaving directory `/usr/local/soft/ipvsadm-1.26/libipvs'
make: *** [libs] 错误 2

经网上多方查询安装libnl-devel和popt后就不报错了,
yum install -y libnl* popt*

原文地址:https://www.cnblogs.com/tjws/p/3804564.html