标准的NS3协议头示例是否完整?

时间:2014-10-28 02:27:14

标签: c++ ns-3

我正在尝试实现在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()的函数定义。我是否应该自己编写代码?似乎这将包含在示例代码中。

1 个答案:

答案 0 :(得分:0)

答案是肯定的,如果用户实现GetData和SetData,它确实有效。

但是,给出的示例代码中缺少两个步骤。

  1. 必须将新的.h和.cc文件添加到./wscript中,这并不是很明显。

  2. GetInstanceTypeId的类型定义包含错误。缺少“const”:

    TYPEID YHeader :: GetInstanceTypeId(void) { return GetTypeId(); }

  3. 应阅读:

    TypeId
    YHeader::GetInstanceTypeId (void) const
    {
    return GetTypeId ();
    }
    

    我会建议更新页面维护者。