我正在尝试编译一些关于 UNIX scokets 程序的源代码,在 Linux 上我没有问题,但在 macOS 上我遇到了类型定义问题。我不知道我可以在这里放多少细节,但我会尝试的。
需要编译的源代码有:
errlib.c
errlib.h
server_test.c
sockwrap.c
sockwrap.h
main
位于的位置server_test.c
。
要编译我使用:
gcc -Wall -DTRACE -o server_test server_test.c errlib.c sockwrap.c
在 Linux 上运行它没有问题,但在 macOS 上我收到超过 20 个错误,所有这些都是关于(可能)缺少bool_t
. /usr/include/rpc/*
我想某些东西在 macOS 内部库中的文件中不起作用。
所以我寻找 if <sys/types.h>
is included in /usr/include/rpc/xdr.h
,它似乎没有丢失。
输出的一些第一行gcc
是:
In file included from server_test.c:16:
/usr/include/rpc/xdr.h:126:3: error: type name requires a specifier or qualifier
bool_t (*x_getlong)(struct __rpc_xdr *, int *);
^
/usr/include/rpc/xdr.h:126:10: error: function cannot return function type 'int (struct __rpc_xdr *, int *)'
bool_t (*x_getlong)(struct __rpc_xdr *, int *);
^
/usr/include/rpc/xdr.h:128:3: error: type name requires a specifier or qualifier
bool_t (*x_putlong)(struct __rpc_xdr *, const int *);
^
/usr/include/rpc/xdr.h:128:10: error: function cannot return function type 'int (struct __rpc_xdr *, const int *)'
bool_t (*x_putlong)(struct __rpc_xdr *, const int *);
^
/usr/include/rpc/xdr.h:128:3: error: duplicate member 'bool_t'
bool_t (*x_putlong)(struct __rpc_xdr *, const int *);
^
/usr/include/rpc/xdr.h:126:3: note: previous declaration is here
bool_t (*x_getlong)(struct __rpc_xdr *, int *);
^
/usr/include/rpc/xdr.h:136:3: error: type name requires a specifier or qualifier
bool_t (*x_getbytes)(struct __rpc_xdr *, char *, unsigned int);
...
和许多其他非常相似的行。
对于那些想要加深的人,可以在此处获得资源。
可能是什么问题呢?