开发者社区> 问答> 正文

ice编译出错? 400 报错

ice编译出错? 400 报错

我在ubuntu下用eclipse环境来编译ice,我只是用了简单的客户端代码如下:

#include <Ice/Ice.h>
    #include <Printer.h>

    using namespace std;
    using namespace Demo;
   int main(int argc, char* argv[])
 {
    Ice::CommunicatorPtr ic;
    try{
         // 初始化Ice运行库
         ic = Ice::initialize(argc, argv);
        // 在10000端口取得 SimplePrinter代理对象
         Ice::ObjectPrx base = ic->stringToProxy("SimplePrinter:default -p 10000");
         // 把对象转换成Printer 代理
        PrinterPrx printer =  PrinterPrx::checkedCast(base);
           if(!printer) throw "Invalid Proxy!";
         // 能用这个代码调用printString方法
          printer-> printString ("Hello World!");
       }
     catch(const Ice::Exception &e)
     {
        cerr << e << endl;
     }
      catch(const char* msg){
         cerr << msg << endl;
     }
      // 回收Ice运行库所用的资源
     if(ic) ic->destroy();
  
 }

 

可是却有错,编译不过,错误如下:

make all
Building file: ../Client.cpp
Invoking: GCC C++ Compiler
g++ -I/home/shenxinyue -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"Client.d" -MT"Client.d" -o"Client.o" "../Client.cpp"
../Client.cpp: In function ‘int main(int, char**)’:
../Client.cpp:18: error: ‘class IceProxy::Demo::Printer’ has no member named ‘printString’
make: *** [Client.o] 错误 1

 

我不知道出现什么问题,还请高手指点!不甚感激!

展开
收起
爱吃鱼的程序员 2020-06-04 13:21:24 627 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    会不会是对应的print.ice中没有这个方法啊。

    ######

    引用来自#2楼“bastetwang”的帖子

    会不会是对应的print.ice中没有这个方法啊。

    应该有的,我已经在控制台上用printer.ice文件生成了printer.cpp和printer.h文件!而且我也在那个类中找到了相关文件,就是编译时找不到,不知道哪出问题了?

    ######

    你的ICE接口文件定义的不对。

    2020-06-04 16:50:33
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载