无法在 .msg 文件中扩展 FieldsChunk class(来自 INET)
Can't extend FieldsChunk class (from INET) inside .msg file
我需要制作一个 MANET 路由协议,所以我正在查看 INET 中的 GPSR 和 DSDV 源代码以深入了解如何做。
我检查了文件 DsdvHello.msg
和 Gpsr.msg
,其中定义了代表这些协议数据包的 classes。那些 classes 扩展 FieldsChunk
class。我假设我必须以相同的方式定义我的协议的数据包,所以我在我的项目中制作了文件 Protocolo.msg
,如下所示。
cplusplus {{
#include "inet/common/packet/chunk/FieldsChunk.h"
#include "inet/networklayer/contract/ipv6/Ipv6Address.h"
}}
class FieldsChunk;
class Ipv6Address;
class Hola extends FieldsChunk {
Ipv6Address ip;
string ubicacion;
}
class Adios extends FieldsChunk {
Ipv6Address ip;
}
我不确定我做的是否正确,但我正在做我在 DsdvHello.msg
和 Gpsr.msg
以及 OMNeT++ 模拟手册中的消息定义章节中看到的那样。
我在“项目”>“属性”>“项目引用”中选择了 INET,但是当我构建我的项目时,当它试图编译我的 .msg
文件时,我收到消息 fatal error: inet/common/packet/chunk/FieldsChunk.h: No such file or directory
。
我还有一个使用 IManetRouting(也来自 INET)的 NED 文件没有问题,但由于某种原因它在 .msg
文件中找不到 FieldsChunk.h
和 IPv6Address.h
.
任何人都可以告诉我是否需要做任何其他事情以便我可以在我的 .msg
文件中使用那些 classes 吗?
把Protocolo.msg
改成:
import inet.common.INETDefs;
import inet.common.packet.chunk.Chunk;
import inet.networklayer.contract.ipv6.Ipv6Address;
namespace inet;
class Hola extends FieldsChunk {
Ipv6Address ip;
string ubicacion;
}
class Adios extends FieldsChunk {
Ipv6Address ip;
}
然后去你项目的Properties
,select OMNeT++
| Makemake
|源文件夹 | Options...
和:
- 在
Compile
选项卡中检查"Add include paths exported from referenced projects"
在 Custom
选项卡中添加以下行:
MSGC:=$(MSGC) --msg6
我需要制作一个 MANET 路由协议,所以我正在查看 INET 中的 GPSR 和 DSDV 源代码以深入了解如何做。
我检查了文件 DsdvHello.msg
和 Gpsr.msg
,其中定义了代表这些协议数据包的 classes。那些 classes 扩展 FieldsChunk
class。我假设我必须以相同的方式定义我的协议的数据包,所以我在我的项目中制作了文件 Protocolo.msg
,如下所示。
cplusplus {{
#include "inet/common/packet/chunk/FieldsChunk.h"
#include "inet/networklayer/contract/ipv6/Ipv6Address.h"
}}
class FieldsChunk;
class Ipv6Address;
class Hola extends FieldsChunk {
Ipv6Address ip;
string ubicacion;
}
class Adios extends FieldsChunk {
Ipv6Address ip;
}
我不确定我做的是否正确,但我正在做我在 DsdvHello.msg
和 Gpsr.msg
以及 OMNeT++ 模拟手册中的消息定义章节中看到的那样。
我在“项目”>“属性”>“项目引用”中选择了 INET,但是当我构建我的项目时,当它试图编译我的 .msg
文件时,我收到消息 fatal error: inet/common/packet/chunk/FieldsChunk.h: No such file or directory
。
我还有一个使用 IManetRouting(也来自 INET)的 NED 文件没有问题,但由于某种原因它在 .msg
文件中找不到 FieldsChunk.h
和 IPv6Address.h
.
任何人都可以告诉我是否需要做任何其他事情以便我可以在我的 .msg
文件中使用那些 classes 吗?
把
Protocolo.msg
改成:import inet.common.INETDefs; import inet.common.packet.chunk.Chunk; import inet.networklayer.contract.ipv6.Ipv6Address; namespace inet; class Hola extends FieldsChunk { Ipv6Address ip; string ubicacion; } class Adios extends FieldsChunk { Ipv6Address ip; }
然后去你项目的
Properties
,selectOMNeT++
|Makemake
|源文件夹 |Options...
和:- 在
Compile
选项卡中检查"Add include paths exported from referenced projects" 在
Custom
选项卡中添加以下行:MSGC:=$(MSGC) --msg6
- 在