使用rpc.h库编写C++ RPC程序时遇registerrpc未声明错误求助
解决
registerrpc未声明的编译错误 常见修复方案
开启旧RPC接口声明:
部分现代系统默认隐藏registerrpc这类传统Sun RPC函数,需在包含头文件前定义特定宏:#define RPC_SVC_FG #include <iostream> #include <netdb.h> #include <rpc/rpc.h> #include <rpc/xdr.h>若
RPC_SVC_FG无效,可尝试#define _RPC_THREAD_SAFE,具体取决于系统实现。链接RPC库:
编译时必须链接RPC相关库,GCC编译命令需添加-lrpc或-lrpcsvc参数:g++ your_file.cpp -o rpc_program -lrpc补全未定义的标识符:
你的代码中还有两个未定义项:port:需指定合法的RPC端口(如100001)myfunction:需提前定义符合RPC规范的处理函数,示例:void* myfunction(void* arg, struct svc_req* req) { // 实现服务逻辑 return nullptr; }
安装缺失的依赖包:
部分新发行版需手动安装RPC开发库,以Debian/Ubuntu为例:sudo apt-get install librpcsvc-dev
内容的提问来源于stack exchange,提问作者Skar
相关产品推荐
相关产品推荐

