You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用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
    
  • 补全未定义的标识符:
    你的代码中还有两个未定义项:

    1. port:需指定合法的RPC端口(如100001)
    2. myfunction:需提前定义符合RPC规范的处理函数,示例:
      void* myfunction(void* arg, struct svc_req* req) {
          // 实现服务逻辑
          return nullptr;
      }
      
  • 安装缺失的依赖包:
    部分新发行版需手动安装RPC开发库,以Debian/Ubuntu为例:

    sudo apt-get install librpcsvc-dev
    

内容的提问来源于stack exchange,提问作者Skar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 15:15:57