我有基于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 =
答案 0 :(得分:1)
您可以使用-I/usr/include/tirpc
作为编译器标志(在CFLAGS
中),以避免需要修补文件。这显然是在您的发行版中使用头文件的方式。
您应该能够通过链接-ltirpc
来避免链接器问题。