c-Make:指定交叉编译器路径时找不到命令



我正试图在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:找不到命令

但是,当我没有指定编译器的路径时,make会起作用,但当它到达交叉编译器的点时,它会给我:

make:arm-linux-gneabi-gcc:找不到命令

当我将make更改为交叉编译器时,我认为它不在我的系统路径中。因此,如何将make和交叉编译器都添加到系统路径中?

编辑

我的交叉编译器实际上是arm-linux-gnueabi-gcc-4.7,而不是arm-linux-gnueabi-gcc。然而,当我通过执行CROSS_COMPILE=arm-linux-gnueabi-make中指定交叉编译器时,我得到:

make:arm-linux-gneabi-gcc:找不到命令

因为arm-linux-gnueabi-gcc不是它应该寻找的。然而,当我指定CROSS_COMPILE=arm-linux-gnueabi-gcc-4.7时,它会在其末尾添加gcc,并给出:

make:arm-linux-gnueabi-gcc-4.7gcc:找不到命令

编辑2

我只是简单地重命名了交叉编译器,这似乎奏效了。但现在,我得到了错误:

arm linux gneabi gcc:尝试执行"cc1"时出错:execvp:没有这样的文件或目录

设置CROSS_COMPILE只是设置所有CC=$(CROSS_COMPILE)ccAS=$(CROSS_COMPILE)asLD=$(CROSS_COMPILE)ld等的简写(只需查看带有less(1)的顶级Makefile

所以你应该能够做这个

$ 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

对于工具链中的每个二进制文件,您应该创建符合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

相关内容

  • 没有找到相关文章

最新更新