这个错误是什么在RPC中对'xdr_numbers'的未定义引用

时间:2017-04-14 13:50:09

标签: c rpc

power.x

struct numbers
{
  int number;
  int power;
};

program POWER_PROG {
    version POWER_VERS {
            int power(numbers) = 1;
    } = 1;
} = 0x31415926;

client.c

#include <stdlib.h>
#include <stdio.h>
#include <rpc/rpc.h>
#include "power.h"

main(argc, argv)
int argc;
char **argv;
{
CLIENT *cl; /* rpc handle */
char *server;

int *result;

    numbers num;


if (argc != 2) {
    fprintf(stderr, "usage:  %s hostname\n", argv[0]);
    exit(1);
}
server = argv[1];   /* get the name of the server */

result = (int *)malloc(sizeof(int));

/* create the client handle */
if ((cl=clnt_create(server, FACT_PROG, FACT_VERS, "udp")) == NULL) 
{
    /* failed! */
    clnt_pcreateerror(server);
    exit(1);
}



num.number=5;
num.power=3;

/* call the procedure bin_date */
if ((result=fact_1(&num, power, cl))==NULL) {
    /* failed ! */
    clnt_perror(cl, server);
    exit(1);
}
printf("Factorial returned from server is : %d\n", *result);

clnt_destroy(cl);   /* get rid of the handle */
exit(0);
}

server.c

 #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

我使用以下命令编译power.x文件:rpcgen power.x 它生成了所有文件。但是当我尝试编译服务器代码时,它会产生上述错误。

 gcc -o server.out -DPRC_SVC_FG server.c power_svc.c

如何解决此错误?

0 个答案:

没有答案