我正在尝试实现在NS3中创建新协议头的标准建议。我一直在关注http://www.nsnam.org/wiki/HOWTO_create_a_new_type_of_protocol_header_or_trailer的简要教程。
即使只是将代码复制到相关文件中,我也会收到错误,说SetData和GetData未定义。
./libns3.21-applications-debug.so: undefined reference to
ns3 :: LocHeader :: GetData()const'./ libns3.21-applications-debug.so:
vtable for ns3::LocHeader'
的未定义引用./libns3.21-applications-debug.so: undefined reference to
ns3 :: LocHeader :: SetData(unsigned int)'clang:错误:链接器命令失败,退出代码为1(使用-v查看调用)`
我没有在任何示例代码中看到SetData()或GetData()的函数定义。我是否应该自己编写代码?似乎这将包含在示例代码中。
答案 0 :(得分:0)
答案是肯定的,如果用户实现GetData和SetData,它确实有效。
但是,给出的示例代码中缺少两个步骤。
必须将新的.h和.cc文件添加到./wscript中,这并不是很明显。
GetInstanceTypeId的类型定义包含错误。缺少“const”:
TYPEID YHeader :: GetInstanceTypeId(void) { return GetTypeId(); }
应阅读:
TypeId
YHeader::GetInstanceTypeId (void) const
{
return GetTypeId ();
}
我会建议更新页面维护者。