c - 对 `registerrpc' 的 undefined reference

标签 c linux rpc

我有一个简单的服务器,它必须注册一个过程才能通过 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/

相关文章:

c - C 中的 Malloc - 返回值

go - 多次使用TCP连接返回 'broken pipe'错误

linux - 在 sed 中加入行范围的正则表达式

linux - 从汇编中的键盘读取整数(Linux IA-32 x86 gcc gas)

java - 执行字符串作为方法?

java - 比较 Java RPC 与 Web 服务

C - 诅咒,从游戏中移除闪烁的光标

python - 有谁知道 TikZ 的非 TeX 等价物?

c - 函数的第一个大括号

linux - 检索Linux上单个进程的CPU使用率和内存使用率?