【发布时间】:2014-07-21 15:56:22
【问题描述】:
我正在尝试使用 Buildroot Cross-Compiler 编译 Busybox。
步骤如下:
-
下载 Busybox 并解压
wget http://www.busybox.net/downloads/busybox-1.22.1.tar.bz2 && tar xjf busybox-1.22.1.tar.bz2
-
配置 BusyBox 并编译
制作菜单配置
制作 CROSS_COMPILE=/usr/local/cross-rpi/usr/bin/arm-linux-
(交叉编译器的路径正确)
编译返回如下错误:
CC networking/nslookup.o
networking/nslookup.c: In function ‘server_print’:
networking/nslookup.c:123:37: error: ‘struct <anonymous>’ has no member named ‘nsaddrs’
networking/nslookup.c: In function ‘set_default_dns’:
networking/nslookup.c:163:15: error: ‘struct <anonymous>’ has no member named ‘nsaddrs’
make[1]: *** [networking/nslookup.o] Error 1
make: *** [networking] Error 2
如果我不使用交叉编译器,一切都会很好。
你有什么建议吗?
【问题讨论】:
-
只有这些错误吗?通常,学习对代码库进行递归搜索(使用 -r 标志到 grep 或在 IDE 中),找出这些标识符的位置以及导致它们丢失的原因。您还应该对消息的关键部分进行网络搜索,以查看使用该包的其他人是否遇到并理解它。你能得到一个已经从某个地方移植到 pi 的busybox版本吗?
-
我不知道在这种情况下如何使用 grep -r 。是的,我有一个以前工作的工作 linux 版本
-
我使用了 Buildroot,它使用了 busybox,来填充文件系统。导致错误的原因仍然是个谜。
-
在我通过网络搜索找到的随机版本的 nslookup.c 中,此代码仅在定义了
ENABLE_FEATURE_IPV6时才起作用。当您构建的库/包含不支持它时,可能会启用它。你想要吗?你需要它吗?您是否自动配置此项目或类似项目?如果是这样,请注意检测 构建系统 的配置然后尝试将结果应用到可能仍然是 linux,但 不同 一个。
标签: c++ linux-kernel embedded-linux busybox buildroot