指定交叉编译器路径时出现“Make:command not found”的错误提示。

3
我正在尝试在我的FOX G20 V板上编译内核。为此,我必须在其中一个步骤中指定交叉编译器arm-linux-gnueabi。命令是:

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- at91-ariag25.dtb

因此,为了让编译器知道交叉编译器的可执行文件在哪里,我通过执行以下命令将其指定到路径中:

export PATH=$PATH:/home/path_goes_here/bin

当我执行echo $PATH时,我得到了交叉编译器的正确路径。然而,现在当我进行项目的编译时,我收到以下错误提示:

make: command not found

但是当我不指定编译器的路径时,编译可以正常进行,但是在达到交叉编译器的时候,它会给我以下错误提示:

make: arm-linux-gnueabi-gcc: Command not found

我认为当我将系统路径更改为交叉编译器时,我的编译器可能不在系统路径中。因此,如何将make和交叉编译器都添加到系统路径中呢? 编辑 我的交叉编译器实际上是arm-linux-gnueabi-gcc-4.7,而不是arm-linux-gnueabi-gcc。然而,当我通过执行CROSS_COMPILE=arm-linux-gnueabi-指定交叉编译器时,我会收到以下错误提示:

make: arm-linux-gnueabi-gcc: Command not found

因为它没有找到应该寻找的arm-linux-gnueabi-gcc。但是当我指定CROSS_COMPILE=arm-linux-gnueabi-gcc-4.7时,它会在末尾添加gcc并给出以下结果:

make: arm-linux-gnueabi-gcc-4.7gcc: Command not found

编辑2 我只是将交叉编译器重命名,这似乎起作用了。但是现在,我收到以下错误提示:

arm-linux-gnueabi-gcc: error trying to exec 'cc1': execvp: No such file or directory


你能在这里写下 readelf -a /path/to/arm-linux-gnueabi-gcc | grep "Requesting" 的结果吗?如果程序解释器不在该路径中,你可能需要将整个路径移动到正确的位置。 - ymonad
我已经安装了make(因为我以前用过它)。我尝试将交叉编译器路径附加到现有路径中:export PATH=$PATH:/home/dico/gcc-4.7-arm-linux-gnueabi_4.7.2-1/usr/bin,但是当我尝试编译时,仍然出现arm-linux-gnueabi-gcc: Command not found - Adam
@LeeDuhem和其他人,请检查编辑。 - Adam
@JohnSmith 好的,你可以创建一个名为 arm-linux-gnueabi-gcc 的符号链接,指向你实际的交叉编译器 arm-linux-gnueabi-gcc-4.7。其他工具,如 ldas 等也可能需要创建符号链接。 - Lee Duhem
请再检查一遍编辑。 - Adam
显示剩余17条评论
2个回答

2

设置CROSS_COMPILE只是为了快捷设置CC=$(CROSS_COMPILE)cc AS=$(CROSS_COMPILE)as LD=$(CROSS_COMPILE)ld等等(只需查看顶层Makefile并使用less(1)命令即可)。

因此,您应该能够做到这一点。

$ export ARCH=arm
$ xc=arm-linux-gnueabi-
$ export CC=$(xc)gcc-4.7
$ export AS=$(xc)as-4.7
$ export LD=$(xc)ld-4.7
etc etc
$ make at91-ariag25.dtb

1

对于工具链中的每个二进制文件,您应该创建符号链接,遵循Makefile所需的命名约定。这些链接应指向使用不符合命名方案的相应二进制文件。

cd /home/dico/gcc-4.7-arm-linux-gnueabi_4.7.2-1/usr/bin
ln -s arm-linux-gnueabi-gcc-4.7 arm-linux-gnueabi-gcc

谢谢你的帮助! - Adam

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接