arm9x25交叉编译IPTABLES问题与解决

iptables 版本选择 1.4.0, 高版本出现没有入口函数问题, 稍后解决。

下载地址:

http://www.netfilter.org/projects/iptables/downloads.html

选择源码iptables-1.4.0.tar.bz2。

解压缩命令:tar -xjvf iptables-1.4.0.tar.bz2.

编译命令:make CC=arm-none-linux-gnueabi-gcc RANLIB=arm-none-linux-gnueabi-ranlib AR=arm-none-linux-gnueabi-ar LD=arm-none-linux-gnueabi-ld

1 出现下面问题:

arm-none-linux-gnueabi-gcc -O2 -Wall -Wunused -I"/lib/modules/2.6.18-8.el5/build"/include -I"/lib/modules/2.6.18-8.el5/source"/include -Iinclude/ -DIPTABLES_VERSION=\"1.4.0\"  -DIPT_LIB_DIR=\"/usr/local/lib/iptables\" -rdynamic -o iptables iptables-standalone.c iptables.o xtables.o libiptc/libiptc.a -ldl
/AT91SAM9X25/arm-2010q1/bin/../lib/gcc/arm-none-linux-gnueabi/4.4.1/../../../../arm-none-linux-gnueabi/bin/ld: libiptc/libiptc.a(libip4tc.o): Relocations in generic ELF (EM: 3)
/AT91SAM9X25/arm-2010q1/bin/../lib/gcc/arm-none-linux-gnueabi/4.4.1/../../../../arm-none-linux-gnueabi/bin/ld: libiptc/libiptc.a(libip4tc.o): Relocations in generic ELF (EM: 3)
libiptc/libiptc.a: could not read symbols: File in wrong format
collect2: ld returned 1 exit status

由于在编译过程中 make libiptc子目录中的静态库不是用arm编译器编译出来的,在链接的时候提示格式不识别。

进入到libiptc目录修改makefile,

在libiptc/libip4tc.d libiptc/libip6tc.d: %.d: %.c
        @-$(CC) -M -MG $(CFLAGS) $< | sed -e 's@^.*\.o:@$*.d libiptc/libiptc.a($*.o):@' > $@

之前添加以下语句:

CC=arm-none-linux-gnueabi-gcc

删除libiptc.a 回到主目录重新编译。

2 出现下面问题:

libiptc/libip6tc.c:123: error: 'const struct in6_addr' has no member named 'in6_u'
libiptc/libip6tc.c:127: error: 'const struct in6_addr' has no member named 'in6_u'

由于编译使用linux版本同iptables-1.4.0.tar.bz2。当是依赖版本不同,作出如下修改:

将'in6_u'前加上双下划线。将u6_addr32前面加上双下滑线。回主目录重新编译。

3 出现如下问题:

ip6tables.c:681: error: 'struct in6_addr' has no member named 'in6_u'
ip6tables.c:681: error: 'struct in6_addr' has no member named 'in6_u'

修改方式同上。继续编译完成。

4 安装:

可以在编译时执行PREFIX变量为安装路径。

或者在makefle中修改PREFIX值。

lib/iptables下库文件需要安装在lib/iptables目录下。

sbin下面存放iptables可执行程序。

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李洛克07

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值