Omnet ++ Как наследовать от cSimpleModule в другом проекте в той же рабочей области? - PullRequest
0 голосов
/ 11 апреля 2019

Я новичок в 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 «ожидаемое имя класса до», токен.

cSimpleModule почему-то не распознается.

Кажетсябыть проблемой связывания. Любые идеи?

Использование Omnet ++ 5.6 INET 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;
...
}

1 Ответ

0 голосов
/ 12 апреля 2019

Похоже, вы используете 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 был серьезным изменением, поэтому не следует ожидать, что этот проект будет работать с новыми версиями.

...