【问题标题】:Make: command not found when specifying cross compiler pathMake:指定交叉编译器路径时找不到命令
【发布时间】:2014-04-24 07:11:23
【问题描述】:

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

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

所以为了让编译器知道交叉编译器的可执行文件在哪里,我通过这样做在路径中指定它

导出 PATH=$PATH:/home/path_goes_here/bin

当我执行echo $PATH 时,我得到了交叉编译器的正确路径。然而,现在当我完成我的项目时,我收到了:

make:找不到命令

但是当我没有指定编译器的路径时,make可以工作但是当它到达交叉编译器的点时,它给了我:

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

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

编辑

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

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

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

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

编辑 2

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

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

【问题讨论】:

  • > 我得到了正确的交叉编译路径 - 在这里写下这个路径。
  • 你安装了make命令吗?
  • 你能把readelf -a /path/to/arm-linux-gnueabi-gcc | grep "Requesting"的结果写在这里吗?如果该路径中不存在程序解释器,您可能必须将整个路径移动到正确的位置。
  • 我确实安装了 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
  • @ymonad 我得到Error: :/home/dico/gcc-4.7-arm-linux-gnueabi_4.7.2-1/usr/bin is not an ordinary file

标签: c linux gcc makefile cross-compiling


【解决方案1】:

设置CROSS_COMPILE 只是设置所有CC=$(CROSS_COMPILE)cc AS=$(CROSS_COMPILE)as LD=$(CROSS_COMPILE)ld 等的简写(只需查看顶层Makefileless(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

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-02-05
    • 2012-02-29
    • 2015-03-19
    • 2021-04-25
    • 1970-01-01
    • 1970-01-01
    • 2018-01-05
    相关资源
    最近更新 更多