200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > radvd移植到arm交叉编译问题解决

radvd移植到arm交叉编译问题解决

时间:2018-10-02 13:25:32

相关推荐

radvd移植到arm交叉编译问题解决

我使用的radvd版本为Version: 2.16 ,下载源码之后可以先看一下支持的配置./configure --help,然后执行如下配置,主要是配置host参数和CC环境变量。

./configure --host=arm-brcm-linux-uclibcgnueabi CC=/projects/hnd/tools/linux/hndtools-arm-linux-2.6.36-uclibc-4.5.3/bin/arm-brcm-linux-uclibcgnueabi-gcc

然后我就make,不出意料,编译不过。

编译device-common.c时,提示ifaddrs相关的结构体不对,于是手动添加ifaddrs.c和ifaddrs.h到源码目录,在device-common.c里加入#include "ifaddrs.h",然后修改makefile,把ifaddrs.c加入依赖。如下:

# 加上ifaddrs.oradvd_LDADD = \libradvd-parser.a \privsep-linux.o device-linux.o netlink.o ifaddrs.o# 加上ifaddr.cradvd_SOURCES = \defaults.h \includes.h \log.c \log.h \pathnames.h \radvd.h \recv.c \socket.c \util.c \device-common.c \interface.c \process.c \radvd.c \send.c \timer.cbb \ifaddrs.c# 加上ifaddrs.oradvd_DEPENDENCIES = \privsep-linux.o device-linux.o netlink.o \libradvd-parser.a ifaddrs.o# 这个下面加ifaddrs.Po这一行include test/$(DEPDIR)/check_all-print_safe_buffer.Poinclude ./$(DEPDIR)/ifaddrs.Po# 然后再在附近加下面几行check_all-ifaddrs.o: ifaddrs.c$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(check_all_CFLAGS) $(CFLAGS) -MT check_all-ifaddrs.o -MD -MP -MF $(DEPDIR)/check_all-ifaddrs.Tpo -c -o check_all-ifaddrs.o `test -f 'ifaddrs.c' || echo '$(srcdir)/'`ifaddrs.c$(AM_V_at)$(am__mv) $(DEPDIR)/check_all-ifaddrs.Tpo $(DEPDIR)/check_all-ifaddrs.Po# $(AM_V_CC)source='ifaddrs.c' object='check_all-ifaddrs.o' libtool=no \# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \# $(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(check_all_CFLAGS) $(CFLAGS) -c -o check_all-ifaddrs.o `test -f 'ifaddrs.c' || echo '$(srcdir)/'`heck_all-ifaddrs.obj: ifaddrs.c$(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(check_all_CFLAGS) $(CFLAGS) -MT check_all-ifaddrs.obj -MD -MP -MF $(DEPDIR)/check_all-ifaddrs.Tpo -c -o check_all-ifaddrs.obj `if test -f 'ifaddrs.c'; then $(CYGPATH_W) 'ifaddrs.c'; else $(CYGPATH_W) '$(srcdir)/ifaddrs.c'; fi`$(AM_V_at)$(am__mv) $(DEPDIR)/check_all-ifaddrs.Tpo $(DEPDIR)/check_all-ifaddrs.Po# $(AM_V_CC)source='ifaddrs.c' object='check_all-ifaddrs.obj' libtool=no \# DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) \# $(AM_V_CC_no)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(check_all_CFLAGS) $(CFLAGS) -c -o check_all-ifaddrs.obj `if test -f 'ifaddrs.c'; then $(CYGPATH_W) 'ifaddrs.c'; else $(CYGPATH_W) '$(srcdir)/ifaddrs.c'; fi`

就这样。然后就可以编译通过了。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。