gpt4 book ai didi

linux - Mac上基于ARM的Linux系统交叉编译源代码问题

转载 作者:太空宇宙 更新时间:2023-11-04 03:51:00 24 4
gpt4 key购买 nike

port install arm-none-eabi-gcc
port install arm-none-eabi-binutils

我在我的Mac上下载了arm工具。

export CCPREFIX=/opt/local/bin/arm-none-eabi-
make ARCH=arm CROSS_COMPILE=${CCPREFIX}

however it has alot of errors.
tcpdump.c:180: error: ‘struct tcphdr’ has no member named ‘source’
tcpdump.c:238: error: ‘ETH_P_ARP’ undeclared (first use in this function)
tcpdump.c:238: error: ‘ETH_P_ARP’ undeclared (first use in this function)
tcpdump.c:116: error: dereferencing pointer to incomplete type
tcpdump.c:136: error: invalid application of ‘sizeof’ to incomplete type ‘struct icmphdr’
tcpdump.c:136: error: invalid application of ‘sizeof’ to incomplete type ‘struct iphdr’

看起来 mac 不知道那些 Linux 定义、结构,

同样的代码如果在linux系统下make就可以了。

问题是,使用Mac为基于ARM的linux系统交叉编译代码是否可行?

最佳答案

您使用了错误的工具链。 arm-none-eabi适用于裸机 ARM 系统——即没有操作系统的 ARM 系统,如微 Controller ——而不是 Linux 系统。这些系统没有网络堆栈(除非您编译自己的),因此它们没有 TCP/IP 数据结构的 header 。

我认为 MacPorts 没有合适的工具链,但您也许可以使用 crosstool-ng 构建一个工具链。 。 arm-unknown-linux-gnueabi crosstool 中包含的示例可能就是您正在寻找的。

关于linux - Mac上基于ARM的Linux系统交叉编译源代码问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26395127/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com