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

时间:2014-04-24 07:11:24

标签: c linux gcc makefile cross-compiling

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

  

make ARCH = arm CROSS_COMPILE = arm-linux-gnueabi- at​​91-ariag25.dtb

因此,为了让编译器知道交叉编译器的可执行文件的位置,我通过执行

在路径中指定它
  

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

当我echo $PATH时,我得到了交叉编译器的正确路径。但是,现在当我做项目的时候,我收到了:

  

make:找不到命令

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

  

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

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

修改

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

  

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

因为arm-linux-gnueabi-gcc不是它应该寻找的那个。然而,当我指定CROSS_COMPILE=arm-linux-gnueabi-gcc-4.7时,它会在gcc结尾添加{{1}}并给我:

  

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

编辑2

我只是重命名了交叉编译器,这似乎有效。但现在,我收到了错误:

  

arm-linux-gnueabi-gcc:错误尝试执行' cc1':execvp:没有这样的文件或目录

2 个答案:

答案 0 :(得分:2)

设置CROSS_COMPILE只是设置所有CC=$(CROSS_COMPILE)cc AS=$(CROSS_COMPILE)as LD=$(CROSS_COMPILE)ld等等的简写(只需使用{查看顶级Makefile即可{1}})

所以你应该能够做到这一点

less(1)

答案 1 :(得分: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