<resolv.h> 在 OpenBSD 上给出不完整的类型错误
<resolv.h> on OpenBSD gives incomplete type errors
我的 ssl bindings for R 在 linux、osx、windows 和 solaris 上编译,但在 OpenBSD 上包含 resolv.h
时失败。这是 OpenBSD 中的错误吗?我应该(不)先包括其他一些 header 吗?
egcc -std=gnu99 -I/usr/local/lib/R/include -DNDEBUG -I/usr/include -I/usr/local/include -fpic -O2 -pipe -c ssl.c -o ssl.o
In file included from ssl.c:14:0:
/usr/include/resolv.h:137:3: error: array type has incomplete element type
nsaddr_list[MAXNS]; /* address of name server */
^
/usr/include/resolv.h:147:18: error: field 'addr' has incomplete type
struct in_addr addr;
^
/usr/include/resolv.h:164:19: error: field 'ina' has incomplete type
struct in_addr ina;
^
/usr/include/resolv.h:165:20: error: field 'in6a' has incomplete type
struct in6_addr in6a;
^
/usr/local/lib/R/etc/Makeconf:134: recipe for target 'ssl.o' failed
gmake: *** [ssl.o] Error 1
评论中给出了正确答案:
#include <netinet/in.h>
#include <resolv.h>
我的 ssl bindings for R 在 linux、osx、windows 和 solaris 上编译,但在 OpenBSD 上包含 resolv.h
时失败。这是 OpenBSD 中的错误吗?我应该(不)先包括其他一些 header 吗?
egcc -std=gnu99 -I/usr/local/lib/R/include -DNDEBUG -I/usr/include -I/usr/local/include -fpic -O2 -pipe -c ssl.c -o ssl.o
In file included from ssl.c:14:0:
/usr/include/resolv.h:137:3: error: array type has incomplete element type
nsaddr_list[MAXNS]; /* address of name server */
^
/usr/include/resolv.h:147:18: error: field 'addr' has incomplete type
struct in_addr addr;
^
/usr/include/resolv.h:164:19: error: field 'ina' has incomplete type
struct in_addr ina;
^
/usr/include/resolv.h:165:20: error: field 'in6a' has incomplete type
struct in6_addr in6a;
^
/usr/local/lib/R/etc/Makeconf:134: recipe for target 'ssl.o' failed
gmake: *** [ssl.o] Error 1
评论中给出了正确答案:
#include <netinet/in.h>
#include <resolv.h>