对';xdr#U编号';在RPC中
power.x 客户c对';xdr#U编号';在RPC中,c,rpc,C,Rpc,power.x 客户c struct numbers { int number; int power; }; program POWER_PROG { version POWER_VERS { int power(numbers) = 1; } = 1; } = 0x31415926; 我使用命令rpcgen power.x编译了power.x文件 它生成了所有的文件。但当我尝试编译服务器代码时,它给出了上述错误 /tmp/cc604P8X.o
struct numbers
{
int number;
int power;
};
program POWER_PROG {
version POWER_VERS {
int power(numbers) = 1;
} = 1;
} = 0x31415926;
我使用命令rpcgen power.x编译了power.x文件
它生成了所有的文件。但当我尝试编译服务器代码时,它给出了上述错误
/tmp/cc604P8X.o: In function `power_prog_1':
power_svc.c:(.text+0x4f): undefined reference to `xdr_numbers'
collect2: error: ld returned 1 exit status
如何解决此错误 这可能意味着你在建造图书馆时错过了一个图书馆。你是如何建造的?你链接到哪些库?您是否尝试过更改库的顺序(在像Linux这样的POSIX平台上,顺序很重要)?当在服务器上将单个参数传递给函数时,上述代码运行良好。但当我使用结构传递参数时,它给出了上述错误。
#include <rpc/rpc.h>
#include "power.h"
int temp;
int *power_1_svc(numbers *num, struct svc_req *rqstp)
{
temp = 1;
int i;
for(i=1;i<=num->power;i++)
temp = temp * (num->number);
return &temp;
}
/tmp/cc604P8X.o: In function `power_prog_1':
power_svc.c:(.text+0x4f): undefined reference to `xdr_numbers'
collect2: error: ld returned 1 exit status
gcc -o server.out -DPRC_SVC_FG server.c power_svc.c