1.问题:
# make
...
./satellite -I./wpan -o satellite/sat-hdlc.o satellite/sat-hdlc.cc
./satellite/sat-hdlc.h: In member function ‘virtual void HDLC::hdr_dst(Packet*, int)’:
./satellite/sat-hdlc.h:193: 错误:‘HDR_HDLC’ 在此作用域中尚未声明
satellite/sat-hdlc.cc: In member function ‘void HDLC::inSendBuffer(Packet*, ARQstate*)’:
satellite/sat-hdlc.cc:162: 错误:‘HDR_HDLC’ 在此作用域中尚未声明
satellite/sat-hdlc.cc: In member function ‘void HDLC::output(Packet*, ARQstate*, int)’:
satellite/sat-hdlc.cc:220: 错误:‘HDR_HDLC’ 在此作用域中尚未声明
解决:
1)在packet.h文件中定义:
#define HDLR_HDLC(p) ((hdr_hdlc*)hdr_ll::access(p))
2)enum packet_t 增加 PT_HDLC
Enumerator:
PT_TCP
PT_UDP
...
PT_XCP
PT_HDLC
PT_NTYPE
本文解决了在卫星通信仿真软件中遇到的HDLC头文件未声明的问题,通过在packet.h文件中定义宏HDLR_HDLC,并在枚举packet_t中增加PT_HDLC类型来解决编译错误。
6722

被折叠的 条评论
为什么被折叠?



