无法使用libtirpc构建RPC项目

时间:2018-05-29 18:16:17

标签: c linux rpc glibc

我有基于RPC的工作项目。 不幸的是,我被迫将glibc更新为2.27-3。此更新清除了/ usr / include / rpc中的所有rpc头文件。我发现,它们已被弃用,现在可以在libtirpc包中找到。 问题是,我不知道如何使用它们。 我试图改变我的包含

#include <rpc/rpc.h>

#include <tirpc/rpc/rpc.h>

但是某些rpc标头包含来自/ rpc的其他标头,所以它们也找不到它们。然后我将/ usr / include / tirpc的内容复制到/ usr / include / rpc。 它进一步推动了建设,但我仍然无法建立项目,因为:

  

/ usr / bin / ld:status_svc.o:未定义的符号引用&#39; svcerr_noproc @@ TIRPC_0.3.0&#39;   /usr/lib/libtirpc.so.3:添加符号时出错:命令行中缺少DSO

     

collect2:错误:ld返回1退出状态

这是我的makefile的一部分:

# Compiler flags 

CFLAGS += -g -pthread
LDLIBS += -lnsl
RPCGENFLAGS = 

1 个答案:

答案 0 :(得分:1)

您可以使用-I/usr/include/tirpc作为编译器标志(在CFLAGS中),以避免需要修补文件。这显然是在您的发行版中使用头文件的方式。

您应该能够通过链接-ltirpc来避免链接器问题。