【问题标题】:omnet++ problem with simple project run (tiktok)简单项目运行的 omnet++ 问题(tiktok)
【发布时间】:2020-03-30 11:39:38
【问题描述】:

我是 OMNeT++ 的初学者,我编写了一个简单的项目并使用 OMNeT++ 运行它。我收到以下错误:

找不到类“my_node”——可能它的代码没有链接,或者类没有注册到Register_Class(),或者在模块和通道的情况下,使用Define_Module()/Define_Channel()——在模块 (omnetpp::cModule) CDN (id=1) 中,在网络设置期间

我创建了另一个项目并再次写了这个,也得到了那个错误。我的 C++ 代码如下:

#include <string.h>
#include <omnetpp.h>

using namespace omnetpp;

class CDNClass : public cSimpleModule
{
protected:
    virtual void initialize() override;
    virtual void handleMessage(cMessage *msg) override;
};

Define_Module(CDNClass);

void CDNClass::initialize(){
  if (strcmp("note1",getName())==0) {
        cMessage *msg = new cMessage("data");
        send(msg, "out");
   }
}

void CDNClass::handleMessage(cMessage *msg){
   send(msg,"out");
}

我的 ned 文件是:

package proje_shabake;

//
// TODO auto-generated type
//
simple my_node
    {
        gates:
            input in;
            output out;
    }
network CDN
{
submodules:
    node1: my_node {
        @display("p=40,54");
    }
    node2: my_node {
        @display("p=158,62");
    }
connections:
    node1.out --> node2.in;
    node2.out --> node1.in;
}

另外我的ini文件是:

[General]
network = CDN

请帮我解决这个问题。

【问题讨论】:

    标签: omnet++


    【解决方案1】:

    默认情况下,OMNeT++ 期望简单模块的 C++ 类与 NED 中简单模块的名称相同。
    您的简单模块的名称是 my_node,因此需要 C++ 类 my_node。但是,在您的代码中没有那个类。
    我建议用my_node 更改您的C++ 代码中CDNClass 的所有实例。

    顺便说一句:在 OMNeT++ 中有一个选项可以通过几个步骤生成一个简单模块所需的所有文件。选择File | New | Simple Module.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-23
      相关资源
      最近更新 更多