gpt4 book ai didi

ubuntu - 在 debian 上构建交叉编译器时出错

转载 作者:行者123 更新时间:2023-12-04 18:54:06 26 4
gpt4 key购买 nike

我想为powerpc交叉编译内核。我已经尝试在 x86_64 Ubuntu 10.04 和 i386 Debian Lenny 上执行此操作,但我遇到了完全相同的问题。我按照 http://wiki.debian.org/BuildingCrossCompilers 的说明进行操作,当我尝试通过给出以下命令来构建 binutils 时:

fakeroot debian/rules binary-cross

我得到这个结果:
[snip]
make[3]: Entering directory `/home/anthony/cross-toolchain/binutils-2.20.1/builddir-powerpc-linux-gnu/libiberty'
if [ x"-fpic" != x ]; then \
gcc -c -DHAVE_CONFIG_H -g -O2 -Wno-format-security -I. -I../../libiberty/../include -W -Wall -Wwrite-strings -Wc++-compat -Wstrict-prototypes -pedantic -fpic ../../libiberty/regex.c -o pic/regex.o; \
else true; fi
In file included from /usr/include/stdlib.h:320,
from ../../libiberty/regex.c:128:
/usr/include/sys/types.h:100: error: two or more data types in declaration specifiers
make[3]: *** [regex.o] Error 1
[snip]

(这是因为 types.h 尝试 typedef pid_t,然而,它已被 #defined 为 int。如果我在 types.h 中通过 #undef pid_t 解决这个问题,我会在其他地方遇到类似的问题 intptr_t,依此类推等等。)

最佳答案

如果您需要做的只是交叉编译内核,您应该能够执行以下操作:

CROSS_COMPILE=<portion of command before gcc> make ARCH=powerpc menuconfig
make ARCH=powerpc all
#...other for modules, docs, etc.

确保您的路径中有交叉编译器。对于设置 CROSS_COMPILE 变量,如果您的 gcc 交叉编译器命令是 ppc_74xx-gcc 你会设置 CROSS_COMPILE=ppc_74xx-

您可以查看此链接以获取更多信息 http://wiki.ppckernel.org/w/Cross_compiling_a_64-bit_PowerPC_Linux_Kernel

如果您正在考虑从头开始构建自己的跨工具链,请查看 http://trac.cross-lfs.org/该站点向您展示如何从头开始交叉编译 Linux,包括构建您自己的工具链、内核、用户空间等。

关于ubuntu - 在 debian 上构建交叉编译器时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5324388/

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