Как написать собственное приложение, полученное из UdpBasicApp в Omnet ++ (inet)? - PullRequest
0 голосов
/ 27 апреля 2019

Я хочу извлечь класс из UdpBasicApp из inet в Oment ++. Действительно, я хочу написать свое собственное заявление. Я написал следующий код, но когда я компилирую проект, у меня появляется ошибка. Что мне делать для компиляции этого проекта без ошибок?

Creating executable: out/clang-release//Manet_1.1.exe
out/clang-release//MyApp.o:(.rdata[_ZTIN4inet11UdpBasicAppE]+0x10): undefined reference to `typeinfo for inet::ApplicationBase'
out/clang-release//MyApp.o:(.rdata[_ZTV5MyApp]+0x640): undefined reference to `non-virtual thunk to inet::OperationalBase::handleOperationStage(inet::LifecycleOperation*, int, inet::IDoneCallback*)'
clang++.exe: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [Makefile:101: out/clang-release//Manet_1.1.exe] Error 1

MyApp.h

#include "../../inet/src/inet/applications/udpapp/UdpBasicApp.h"

using namespace inet;

class  MyApp : public UdpBasicApp
{
public:
};

MyApp.c

#include "MyApp.h"

Define_Module(MyApp);

MyApp.net

import inet.applications.udpapp.UdpBasicApp;

simple MyApp extends UdpBasicApp
{
    @class(MyApp);
}

1 Ответ

0 голосов
/ 02 мая 2019

Очевидно, что вы работаете в своем собственном проекте, который НЕ должным образом связан с моделью INET. Вы ДОЛЖНЫ выбрать INET в качестве ссылки на проект в диалоговом окне свойств вашего собственного проекта . Это добавит папку включения INET к пути включения, поэтому вам нужно (правильно) написать только

#include "inet/applications/udpapp/UdpBasicApp.h"

вместо

#include "../../inet/src/inet/applications/udpapp/UdpBasicApp.h"

И командная строка компоновщика также будет изменена для правильной связи с общей библиотекой INET.

...