当前位置: 首页 > 工具软件 > GNU Ada > 使用案例 >

arm-linux-gcc找不到命令,找不到gcc-arm-linux-gnueabi命令

邢昂然
2023-12-01

问题描述

我正在尝试为ubuntu安装gnu arm工具链。我首先从CodeSourcery下载了tar。但是,当我进入bin文件夹时,我无法运行任何二进制文件。我尝试过使用./和不使用./并将其放在PATH中,它一直告诉我“找不到命令”,但文件在我前面的文件夹中。然后我尝试了sudo apt-get安装gcc-arm-linux-gnueabi,除了它说成功安装之后,无法在whereis gcc-arm-linux-gnueabi中找到它。有人可以帮忙吗?

最佳方法

您在64位OS上编译吗?尝试:

sudo apt-get install ia32-libs

尝试编译Raspberry Pi内核时,我遇到了同样的问题。我在64位Ubuntu 12.04上为cross-compiling,该工具链要求ia32-libs可以在64位系统上工作。

次佳方法

固定,使用:

sudo apt-get install gcc-arm*

第三种方法

CodeSourcery约定对所有可执行文件都使用前缀arm-none-linux-gnueabi-,而不是您提到的gcc-arm-linux-gnueabi。因此,CodeSourcery gcc的标准名称为arm-none-linux-gnueabi-gcc。

安装CodeSourcery G ++之后,需要将CodeSourcery目录添加到PATH中。

通常,我更喜欢将CodeSourcery安装到/opt/arm-2010q1之类的目录中。如果您不知道它的安装位置,则可以使用locate arm-none-linux-gnueabi-gcc找到它,但是在locate正常运行之前,您可能需要使用sudo updatedb强制更新您的locate db。

在确定CodeSourcery的安装位置之后,通过如下编辑~/.bashrc将其添加到PATH中:

PATH=/opt/arm-2010q1/bin:$PATH

另外,习惯上定义起来非常方便

CROSS_COMPILE=arm-none-linux-gnueabi-

在.bashrc中,因为定义了CROSS_COMPILE,大多数工具将自动使用正确的编译器进行ARM编译,而无需您进行任何操作。

第四种方法

如果您使用的是64位操作系统,则需要安装此附加库。

sudo apt-get install lib32z1 lib32ncurses5 lib32bz2-1.0

第五种方法

尝试在VM下的ubunto 14.04.03 64bit上交叉编译raspberry pi内核时遇到相同的错误。找到解决方案here:

-在Ubuntu盒子上安装用于交叉编译的软件包。

sudo apt-get install gcc-arm-linux-gnueabi make git-core ncurses-dev

-下载工具链

cd ~

git clone https://github.com/raspberrypi/tools

-将工具链添加到您的路径

PATH=$PATH:~/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian:~/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin

注意path命令中的x64版本

第六种方法

安装以下依赖项后,我也遇到了相同的问题并解决了该问题:

sudo apt-get install lib32z1-dev

第七种方法

如果您使用的是64位版本的ubuntu或debian(例如,参见’cat /proc/version’),则应使用64位交叉编译器(如果已克隆)

git clone https://github.com/raspberrypi/tools

然后是64位工具

tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64

将该目录用于gcc-toolchain。 Building and compiling Raspberry PI Kernel提供了我遵循的有用的编译教程(从上方将-x64路径用作$ {CCPREFIX})

参考资料

 类似资料: