RPC를 통해 사용할 수 있도록하는 절차를 등록해야하는이 간단한 서버가 있습니다. 나는 이러한 오류를 얻을 컴파일하려고하면'registerrpc'에 대한 정의되지 않은 참조
#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;
}
: 여기 내 server.c입니다
> 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
을 찾을 수 있다는 것입니다
저는 우분투 12.04를 사용하고 있습니다. 제 반에서 다른 학생이 portmap
을 설치하여 작동하도록했습니다. 그래서 똑같은 일을 시도했습니다. 불행히도 이것은 도움이되지 못했습니다.
이 (옵션에 -Wall''추가) 'registerrpc'가 암시 적으로 선언되었다고 경고합니까? – Arkku
예. 나는'server.c :(. text + 0x47) : 'registerrpc'에 대한 정의되지 않은 참조가 더 표현적 일 것이라고 생각했기 때문에 그것을 추가하지 않았다. –
암시 적으로 선언 되었기 때문에'rpc/rpc. h이다. 올바른 _header_를 찾는 것은 올바른 라이브러리를 찾기 위해 먼 길을 갈 수도 있습니다. (또는 함수가 더 이상 사용되지 않고 그 헤더에서 다른 함수를 사용해야 할 수도 있습니다. 실제로는 rpc에 대해 알지 못합니다.) – Arkku