未找到gcc arm linux gnueabi命令

未找到gcc arm linux gnueabi命令,linux,ubuntu,gcc,arm,gnu,Linux,Ubuntu,Gcc,Arm,Gnu,我正在尝试为ubuntu安装gnu arm工具链。我首先从CodeSourcery下载了tar。但是,当我进入bin文件夹时,我无法运行任何二进制文件。我尝试了使用/和不使用,并将其放入路径中,它不断告诉我“未找到命令”,但文件仍在我面前的文件夹中。然后我尝试了sudo-apt-get-install-gcc-arm-linux-gnueabi,但在它说它已经成功安装之后,我找不到gcc-arm-linux-gnueabi。有人能帮忙吗?请尝试以下命令: which gcc-arm-linux-

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

请尝试以下命令:

which gcc-arm-linux-gnueabi

很可能该命令安装在
/usr/bin

代码源代码惯例是对所有可执行文件使用前缀
arm none-linux-gnueabi-
,而不是您提到的
gcc-arm-linux-gnueabi
。因此,CodeSourcery gcc的标准名称是
arm none linux gnueabi gcc

安装CodeSourcery G++后,需要将CodeSourcery目录添加到
路径中

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

确定CodeSourcery的安装位置后,通过编辑
~/.bashrc
将其添加到路径中,如下所示:

PATH=/opt/arm-2010q1/bin:$PATH
此外,这是一种习惯,而且定义起来非常方便

CROSS_COMPILE=arm-none-linux-gnueabi-

在您的
.bashrc
中,由于定义了
交叉编译
,大多数工具将自动使用适当的编译器进行ARM编译,而无需您做任何事情。

您已经安装了一个工具链,该工具链是在一个运行x86\u 64用户区的盒子上为i686编译的


使用i686虚拟机。

您是在64位操作系统上编译的吗?尝试:

sudo apt-get install ia32-libs
我在编译Raspberry Pi内核时遇到了同样的问题。我在Ubuntu 12.04 64位上进行交叉编译,工具链需要ia32 libs才能在64位系统上工作


参见

这有点违反直觉。该工具链称为gcc-arm-linux-gnueabi。要调用这些工具,请执行以下命令:arm linux gnueabi xxx


如果xxx是gccarld等,如果您在64位操作系统上,则需要安装此附加库

sudo apt-get install lib32z1 lib32ncurses5 lib32bz2-1.0

在UBTO 14.04.0364位的虚拟机下交叉编译raspberry pi内核时,出现了相同的错误。找到了解决方案:

-在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 gcc-arm*

如果您使用的是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工具链。
这里提供了一个有用的编译教程(使用上面的-x64路径作为${CCPREFIX})

我也遇到了同样的问题,并在安装了以下依赖项后解决了这个问题:

sudo apt-get install lib32z1-dev

我不得不在Ubuntu中为ARM交叉编译C代码。这对我很有用:

$sudo apt安装gcc arm none eabi

后来,在qemu模拟器上对其进行了测试

#Install qemu
sudo apt-get install qemu qemu-user-static qemu-system-arm

#Cross compile "helloworld.c"
$ arm-none-eabi-gcc --specs=rdimon.specs   -Wl,--start-group -lgcc -lc -lm -lrdimon -Wl,--end-group helloworld.c -o helloworld

#Run
qemu-arm-static helloworld


如果从源代码安装,则需要编译源代码并安装bin。但是,如果您下载编译的bin,您可以运行它。在您使用apt安装后,可以提供更多信息。尝试使用
sudo find/-name“*gcc arm*”
查找是否存在一些binapt get install ia32 libs。您正在尝试在64位linux安装上运行32位二进制文件。在那里,做到了…对于Mac和Win 10,你可以参考答案。这不是一个CodeSourcery约定,它是一个被称为目标三元组的GNU/GCC东西,具有cpu供应商的形式-os@mux:我没说这是一个代码源公约。我只是说这是一种习惯,大多数工具都会自动开始使用它(这很可能是因为GCC目标三元组)。在ubuntu上,当我发出这个命令时,它会抛出错误-包ia32 libs不可用,但是被另一个软件包引用。@MadhavanKumar尝试这个sudo apt get install lib32z1 lib32ncurse5 lib32bz2-1.0在Linux上使用multiarch这不是一个好建议,特别是对于像设置交叉编译编译器这样的小程序。在Debian 8上,似乎缺少了第三个软件包:lib32bz2-1.0不可用,但被另一个包引用。这可能意味着该软件包丢失、已过时或只能从其他来源获得E:package“lib32bz2-1.0”在Debian 8上没有安装候选项,请按照此处的说明进行操作:尽管已按说明设置了路径,但我必须将完整路径放入CROSS_编译。所以我必须这样做:
sudo make ARCH=arm CROSS\u COMPILE=/home/will/kernel/mybuild/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/arm-linux-gnueabihf-INSTALL\u modules=mnt/ext4 modules\u INSTALL>makemodules6.txt
对于我来说,尽管安装了gcc-arm-linux-gnueabi,但这不会返回任何结果