OMNET ++。使用导入的动态库

时间:2017-11-09 14:31:55

标签: omnet++

我有两个omnetpp项目:Lab1和Lab2

从Lab1 .so库创建。实验2应该使用这个库。很清楚如何导入和使用.ned-files中声明的模块。当我尝试使用库中的消息类型(Bitmessage)时出现问题。

来自图书馆的bitmessage.msg:

message Bitmessage {
    bool bit;
}

Lab2中的sSource.h:

#ifndef SSOURCE_H_
#define SSOURCE_H_

#include <omnetpp.h>
#include "bitmessage_m.h"


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

    private:
        double p;
};

Define_Module(sSource);

#endif /* SSOURCE_H_ */

sSource.cc - Lab2中的源文件,假设使用bitmessage:

#include <sSource.h>

/*virtual*/ void sSource::initialize()
{
    p = par("p").doubleValue();
}

/*virtual*/ void sSource::handleMessage(cMessage *msg)
{
    if (msg->getArrivalGate() == gate("in"))
    {
        delete msg;

        Bitmessage* bit_msg = new Bitmessage(); // **(!!!)here is error**
        int num_outs = this->gateSize("out");

        for (int i = 0; i < num_outs; ++i)
        {
            send(bit_msg->dup(), "out", i);
        }

        delete bit_msg;
    }

    else
    {
        delete msg;
    }
}

错误如下:

undefined reference to `Bitmessage::Bitmessage(char const*, int)'

如何处理?也许问题是编译器无法解释库中的.msg文件?

0 个答案:

没有答案