Linux下NS3链接报错,undifine prefene to Ipv4Header::GetTos

DCTCP项目中由于需要在red-queue.cc中对ipv4-header.cc操作。其中red-queue.cc位于network模块,ipv4-header位于Internet模块,

且internet模块依赖于network模块。在编译的时候,项目顺利通过,但是链接时出现错误undifine prefene to Ipv4Header::GetTos()。

跟大神同学讨论了后觉得可能是由于Internet模块依赖于network模块,导致编译器先对network操作,然而red-queue.cc又对Internet内部的ipv4-header.cc进行访问,所以编译器报错undifine prefene to Ipv4Header::GetTos()。

解决方案:将Ipv4Header::GetTos()定义为虚函数,并且为Ipv4Header定义一个父类Header(我这边项目里存在header.cc/header.h文件),Header里面也定义并简单实现虚函数。

virtual uint8_t GetTos(){  //Header中只是简单实现即可,
    return 0;  
}

当red-queue.cc中再次调用GetTos()时,会形成动态绑定,直到运行时才确定调用的哪个对象的GetTos(),从而避免链接时报错。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值