我有一个简单的服务器,它必须注册一个过程才能通过 RPC 访问它。这是我的 server.c:
#include <rpc/rpc.h>
int * p_double(int n){
static int d;
d = 2 * n;
return &d;
}
int main(){
registerrpc(0x22222222, 1, 1, p_double, xdr_int, xdr_int );
svc_run();
return 0;
}
当我尝试编译它时,出现了这些错误:
> gcc -o s server.c
/tmp/ccd0Roxs.o: In function `main':
server.c:(.text+0x47): undefined reference to `registerrpc'
collect2: ld returned 1 exit status
我从中得到的是它无法在任何地方或至少在 rpc/rpc.h
registerrpc
我正在使用 Ubuntu 12.04,我类的另一个学生通过安装 portmap
让它工作所以我尝试做同样的事情。不幸的是,这对任何事情都没有帮助。
(我不确定这是否属于这里,抱歉)
最佳答案
你需要链接RPC库,librpc
:
$ gcc -Wall -lrpc server.c -o server
关于c - 对 `registerrpc' 的 undefined reference ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13145930/