我正在尝试为ubuntu安装gnu arm工具链。我首先从CodeSourcery下载了tar。但是当我进入bin文件夹时,我无法运行任何二进制文件。我已经尝试过./而没有把它放在PATH中并且它一直告诉我“Command not Found”但是文件就在我面前的文件夹中。然后我尝试了sudo apt-get install gcc-arm-linux-gnueabi,除非它说已成功安装,我找不到它的地方gcc-arm-linux-gnueabi。有人可以帮忙吗?
答案 0 :(得分:19)
您是在64位操作系统上编译吗?尝试:
sudo apt-get install ia32-libs
尝试编译Raspberry Pi内核时遇到了同样的问题。我在Ubuntu 12.04 64位上进行交叉编译,工具链需要ia32-libs才能在64位系统上运行。
请参阅http://hertaville.com/2012/09/28/development-environment-raspberry-pi-cross-compiler/
答案 1 :(得分:17)
修复,使用:
sudo apt-get install gcc-arm*
答案 2 :(得分:11)
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
找到它,但是在sudo updatedb
正常工作之前,您可能需要强制使用locate
更新您的定位数据库。
确定安装CodeSourcery的位置后,通过编辑~/.bashrc
添加PATH,如下所示:
PATH=/opt/arm-2010q1/bin:$PATH
此外,定义
是习惯和非常方便的CROSS_COMPILE=arm-none-linux-gnueabi-
在你的.bashrc
中,因为定义了CROSS_COMPILE
,大多数工具会自动使用适当的编译器进行ARM编译,而无需你做任何事情。
答案 3 :(得分:7)
出现了同样的错误。找到了解决方案here:
- 在Ubuntu框上安装用于交叉编译的软件包。
ms-MY
- 下载工具链
sudo apt-get install gcc-arm-linux-gnueabi make git-core ncurses-dev
- 将工具链添加到您的路径
cd ~
git clone https://github.com/raspberrypi/tools
注意路径命令中的x64版本
答案 4 :(得分:6)
如果您使用的是64位操作系统,那么您需要安装这些额外的库。
sudo apt-get install lib32z1 lib32ncurses5 lib32bz2-1.0
答案 5 :(得分:5)
我也遇到了同样的问题,并在安装以下依赖项后解决了这个问题:
sudo apt-get install lib32z1-dev
答案 6 :(得分:3)
如果你使用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})
答案 7 :(得分:2)
有点违反直觉。工具链叫做gcc-arm-linux-gnueabi。要调用这些工具,请执行以下操作: arm-linux-gnueabi-xxx
其中xxx为 gcc 或 ar 或 ld 等
答案 8 :(得分:1)
尝试以下命令:
which gcc-arm-linux-gnueabi
该命令很可能安装在/usr/bin
。
答案 9 :(得分:1)
您已经在运行x86_64用户空间的盒子上安装了为i686编译的工具链。
使用i686 VM。
答案 10 :(得分:0)
我不得不在Ubuntu中为ARM交叉编译C代码。这对我有用:
$ sudo apt install 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