无法使用 libtirpc 构建 RPC 项目
Unable to build RPC project with libtirpc
我有一个基于 RPC 的工作项目。
不幸的是,我被迫将 glibc 更新到 2.27-3。此更新清除了 /usr/include/rpc 中的所有 rpc headers。我发现,它们已被弃用,现在可以在 libtirpc 包中使用。
问题是,我不知道如何使用它们。
我试图从
更改我的包含
#include <rpc/rpc.h>
到
#include <tirpc/rpc/rpc.h>
但一些 rpc headers 包含来自 /rpc 的其他内容,因此他们也找不到它们。然后我把/usr/include/tirpc的内容复制到/usr/include/rpc。
它进一步构建了建筑,但我仍然无法构建项目,因为:
/usr/bin/ld: status_svc.o: undefined reference to symbol 'svcerr_noproc@@TIRPC_0.3.0'
/usr/lib/libtirpc.so.3: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
这是我的 makefile 的一部分:
# Compiler flags
CFLAGS += -g -pthread
LDLIBS += -lnsl
RPCGENFLAGS =
您可以使用 -I/usr/include/tirpc
作为编译器标志(在 CFLAGS
中)以避免修补文件的需要。这显然是头文件旨在用于您的发行版的方式。
链接器问题你应该可以通过链接到-ltirpc
来避免。
我有一个基于 RPC 的工作项目。 不幸的是,我被迫将 glibc 更新到 2.27-3。此更新清除了 /usr/include/rpc 中的所有 rpc headers。我发现,它们已被弃用,现在可以在 libtirpc 包中使用。 问题是,我不知道如何使用它们。 我试图从
更改我的包含#include <rpc/rpc.h>
到
#include <tirpc/rpc/rpc.h>
但一些 rpc headers 包含来自 /rpc 的其他内容,因此他们也找不到它们。然后我把/usr/include/tirpc的内容复制到/usr/include/rpc。 它进一步构建了建筑,但我仍然无法构建项目,因为:
/usr/bin/ld: status_svc.o: undefined reference to symbol 'svcerr_noproc@@TIRPC_0.3.0' /usr/lib/libtirpc.so.3: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
这是我的 makefile 的一部分:
# Compiler flags
CFLAGS += -g -pthread
LDLIBS += -lnsl
RPCGENFLAGS =
您可以使用 -I/usr/include/tirpc
作为编译器标志(在 CFLAGS
中)以避免修补文件的需要。这显然是头文件旨在用于您的发行版的方式。
链接器问题你应该可以通过链接到-ltirpc
来避免。