急!请教!icestorm的实例实现,出现了问题!

发布于 2021-11-13 13:02:11 字数 3057 浏览 952 评论 1

icestorm 手册中有个实例。我在实现过程中出现了问题!

首先定义了Monitor.ice文件:

module rpt{
struct Measurement 
{
  string tower; // tower id
  float windSpeed; // knots
  short windDirection; // degrees
  float temperature; // degrees Celsius
};
interface Monitor {
  void report(Measurement m);
};
};



在实现发布订阅时:
#include <Ice/Ice.h>
#include<IceStorm/IceStorm.h>
#include  "Monitor.h"
using namespace std;
using namespace rpt;
int main(int argc,char* argv[])
{
  Ice::CommunicatorPtr ic;
  Ice::ObjectPrx obj =ic->stringToProxy("IceStorm/TopicManager:tcp -p 999");  
  IceStorm::TopicManagerPrx topicManager =IceStorm::TopicManagerPrx::checkedCast(obj);
  IceStorm::TopicPrx topic  ;
  while (!topic){
   try{
   topic=topicManager->retrieve("Weather");
   }catch(const IceStorm::NoSuchTopic&){
      try {
              topic = topicManager->create("Weather");
      } catch (const IceStorm::TopicExists&){
      }
   }
  }
    Ice::ObjectPrx pub = topic->getPublisher()->ice_oneway();
   MonitorPrx Monitor = MonitorPrx::uncheckedCast(pub);
    while (true) {
     /*   Measurement m = getMeasurement();*/
     Measurement m ;
     Monitor->report(m);}
 }

运行库已经添加了:C:Program FilesZeroCIce-3.4.1lib加入到了库文件目录了。

出现了一大推链接错误,令人费解!请高手赐教!!

client.obj : error LNK2019: 无法解析的外部符号 "class IceProxy::Ice::Object * __cdecl IceInternal::upCast(class IceProxy::rpt::Monitor *)" (?upCast@IceInternal@@YAPAVObject@Ice@IceProxy@@PAVMonitor@rpt@4@@Z),该符号在函数 "public: __thiscall IceInternal::ProxyHandle<class IceProxy::rpt::Monitor>::~ProxyHandle<class IceProxy::rpt::Monitor>(void)" (??1?$ProxyHandle@VMonitor@rpt@IceProxy@@@IceInternal@@QAE@XZ) 中被引用
1>client.obj : error LNK2001: 无法解析的外部符号 "private: virtual class IceInternal::Handle<class IceDelegateM::Ice::Object> __thiscall IceProxy::rpt::Monitor::__createDelegateM(void)" (?__createDelegateM@Monitor@rpt@IceProxy@@EAE?AV?$Handle@VObject@Ice@IceDelegateM@@@IceInternal@@XZ)
1>client.obj : error LNK2001: 无法解析的外部符号 "private: virtual class IceInternal::Handle<class IceDelegateD::Ice::Object> __thiscall IceProxy::rpt::Monitor::__createDelegateD(void)" (?__createDelegateD@Monitor@rpt@IceProxy@@EAE?AV?$Handle@VObject@Ice@IceDelegateD@@@IceInternal@@XZ)
1>client.obj : error LNK2001: 无法解析的外部符号 "private: virtual class IceProxy::Ice::Object * __thiscall IceProxy::rpt::Monitor::__newInstance(void)const " (?__newInstance@Monitor@rpt@IceProxy@@EBEPAVObject@Ice@3@XZ)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

冷清清 2021-11-13 16:29:31

问题已经解决了。。。。

原来是头文件没有加进去。。。。。。。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文