【问题标题】:Omnet++ How to inherit from cSimpleModule in different project in the same workspace?Omnet++ 如何在同一个工作区的不同项目中从 cSimpleModule 继承?
【发布时间】:2019-09-02 07:49:28
【问题描述】:

我是 OMNeT++ 和 C++ 的新手

我想重现 libPTP 的环境: https://omnetpp.org/download-items/libPTP.html

我无法将项目 OMNeT_Utils 设置为 libPTP 的依赖项。 https://github.com/w-wallner/OMNeT_Utils

问题: 我已将 OMNeT_Utils 导入到与 INET 相同的工作区中。 如果我尝试构建项目,我会收到文件 CallableModule.h “expected class-name before ',' 标记的控制台错误。

cSimpleModule 不知何故无法识别。

这似乎是一个链接问题。 有什么想法吗?

使用 Omnet++ 5.6 网内 4.1 Linux Debian 9

我尝试包含路径 ../omnetpp-5.4.1/include/omnetpp 其中 csimplemodule.h 与 C/C++ General --> Paths and Symbols 一起使用。 但是没有效果。 csimplemodule.h 包含在 omnetpp.h 中

CallableModule.h

...
#include "ICallableBase.h"
#include <omnetpp.h>
#include <stack>
...

class cCallableModule : public cSimpleModule, public virtual ICallableBase
{
    private:

        // Resources
        std::stack<cMethodCallContextSwitcher *>    ContextStack;
....
};

csimplemodule.h

class SIM_API cSimpleModule : public cModule //implies noncopyable
{
    friend class cModule;
    friend class cSimulation;
...
}

【问题讨论】:

    标签: c++ eclipse omnet++


    【解决方案1】:

    您似乎正在使用 OMNeT++ 5.4.1 和 INET 4.1,但是该项目声明它需要 OMNeT 4.x(最好是 4.6)和 Inet 2.x 来构建。除非您打算移植所有内容,否则我建议您严格遵循安装指南,并仅在所有内容都已运行时尝试升级其他组件。 OMNeT++ 4.6 和 5.x 是一次重大升级,对 API 进行了几处更改,同样,INET 3.0 和 4.0 也是一项重大更改,因此您不应期望该项目可以与新版本一起使用。

    【讨论】:

    • 好的。将尝试找到一种不同的方法来使用 OMNeT 5.4 和 INET4 设置 ptp 模拟。因为我打算将 OMNeT 5.4 用于其他未来的模拟和协议。无论如何,谢谢。
    猜你喜欢
    • 1970-01-01
    • 2019-05-26
    • 2012-12-05
    • 1970-01-01
    • 1970-01-01
    • 2021-01-14
    • 2013-06-05
    • 2013-12-07
    • 2011-10-22
    相关资源
    最近更新 更多