linux-3.0.1编译drcom-1.4.8.2.tar.gz错误解决
今天用linux(内核版本3.0.1)编译drcom-1.4.8.2.tar.gz时出现错误、错误说drcom.c里面sk_buff结构中找不到dst。查看了一下linux-3.0.1内核源代码,找到sk_buff结构,确实在里面找不到dst。但是找到unsigned long _skb_refdst;查看注释:_skb_refdst: destination entry(with norefcount bit)。
然后再查看linux-2.6.30.4源代码找到struct dst_entry *dst;注释为@dst: destination entry。对比可得到linux-3.0.1用_skb_refdst代替了*dst。
因此修改drcom.c源代码,将源代码中的skb->dst修改为(struct dst_entry*)skb->_skb_refdst。重新编译通过。这样drcom就可以在运行在内核为linux-3.0.1的操作系统上了。
本文介绍了在Linux 3.0.1内核环境下编译drcom-1.4.8.2时遇到的错误,并详细解释了解决过程。主要问题是sk_buff结构中的dst字段在新版本内核中被_skb_refdst所替代,通过修改源代码成功解决了编译问题。
2773

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



