arm-linux-gnueabihf工具安装

本文详细记录了如何下载、编译并配置GCC-Linaro 7.5.0,包括解决下载速度慢的问题,添加环境变量,验证安装及版本信息。

1.下载编译器

比如[gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf.tar.xz],主要問題就是非常慢(https://releases.linaro.org/components/toolchain/binaries/7.5-2019.12/arm-linux-gnueabihf/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf.tar.xz)

2.安装

先解压

xz -d gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf.tar.xz
tar -vxf gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf.tar

将当前的bin目录添加到环境变量中,使用命令pwd

root@xiaobai-virtual-machine:/home/xiaobai/Work/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin# pwd
/home/xiaobai/Work/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin
export PATH=/home/xiaobai/Work/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin:$PATH

环境变量生效

source ~/.bashrc

查看设置的路径,命令echo $PATH
顺便输入arm然后按按tab键看看有没有补齐

3.使用

输入命令arm-linux-gnueabihf-gcc -v,查看是否出现版本信息

Using built-in specs.
COLLECT_GCC=arm-linux-gnueabihf-gcc
COLLECT_LTO_WRAPPER=/home/xiaobai/Work/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin/../libexec/gcc/arm-linux-gnueabihf/7.5.0/lto-wrapper
Target: arm-linux-gnueabihf
Configured with: '/home/tcwg-buildslave/workspace/tcwg-make-release_1/snapshots/gcc.git~linaro-7.5-2019.12/configure' SHELL=/bin/bash --with-mpc=/home/tcwg-buildslave/workspace/tcwg-make-release_1/_build/builds/destdir/x86_64-unknown-linux-gnu --with-mpfr=/home/tcwg-buildslave/workspace/tcwg-make-release_1/_build/builds/destdir/x86_64-unknown-linux-gnu --with-gmp=/home/tcwg-buildslave/workspace/tcwg-make-release_1/_build/builds/destdir/x86_64-unknown-linux-gnu --with-gnu-as --with-gnu-ld --disable-libmudflap --enable-lto --enable-shared --without-included-gettext --enable-nls --with-system-zlib --disable-sjlj-exceptions --enable-gnu-unique-object --enable-linker-build-id --disable-libstdcxx-pch --enable-c99 --enable-clocale=gnu --enable-libstdcxx-debug --enable-long-long --with-cloog=no --with-ppl=no --with-isl=no --disable-multilib --with-float=hard --with-fpu=vfpv3-d16 --with-mode=thumb --with-tune=cortex-a9 --with-arch=armv7-a --enable-threads=posix --enable-multiarch --enable-libstdcxx-time=yes --enable-gnu-indirect-function --with-build-sysroot=/home/tcwg-buildslave/workspace/tcwg-make-release_1/_build/sysroots/arm-linux-gnueabihf --with-sysroot=/home/tcwg-buildslave/workspace/tcwg-make-release_1/_build/builds/destdir/x86_64-unknown-linux-gnu/arm-linux-gnueabihf/libc --enable-checking=release --disable-bootstrap --enable-languages=c,c++,fortran,lto --build=x86_64-unknown-linux-gnu --host=x86_64-unknown-linux-gnu --target=arm-linux-gnueabihf --prefix=/home/tcwg-buildslave/workspace/tcwg-make-release_1/_build/builds/destdir/x86_64-unknown-linux-gnu
Thread model: posix
gcc version 7.5.0 (Linaro GCC 7.5-2019.12) 
<think>我们是在嵌入式Linux环境下,工具链通常是在开发主机(如x86_64架构的PC)上安装的交叉编译工具链,而不是在开发板(如ARM架构的imx6ull)上安装。因此,用户询问的“在imx6ull开发板上安装arm-linux-gnueabihf工具链”实际上是一个常见的误解。 正确理解:我们需要在开发主机(例如运行Ubuntu的PC)上安装针对目标板(imx6ull)的交叉编译工具链(例如arm-linux-gnueabihf),然后在开发主机上使用这个工具链编译程序,再将生成的可执行文件拷贝到开发板上运行。 因此,回答应该纠正这个误解,并指导用户在开发主机上安装交叉编译工具链。 步骤: 1. 确认开发主机系统(通常是x86_64的Linux) 2. 下载或获取适用于imx6ull的工具链(arm-linux-gnueabihf) 3. 在开发主机上解压安装工具链 4. 设置环境变量(PATH)以便使用 根据引用[1]和[3]: - 引用[1]:进入目录,解压交叉编译工具压缩包 ```bash $ cd imx6ull-toolchain $ tar -xvf gcc-arm-10.3-2021.07-x86_64-arm-none-linux-gnueabihf.tar.xz ``` 注意:这里提供的工具链名称是`arm-none-linux-gnueabihf`,与`arm-linux-gnueabihf`本质相同,都是32位ARM架构(支持硬浮点)的交叉编译工具链。 - 引用[3]:提供了两种获取工具链的方式,一种是使用配套资料在线下载(通过repo),另一种是直接拷贝别人已经下载好的ToolChain文件夹(并提供了打包的工具链)。解压命令为: ```bash tar xzvf ToolChain.tar.gz ``` 因此,我们可以整理出以下安装步骤: 步骤1:获取交叉编译工具- 方式1:从官方网站下载(如ARM官方或Linaro) - 方式2:使用配套资料提供的工具链(如引用[1]和[3]) 步骤2:解压工具链到开发主机的目录 - 例如,解压到`/opt`目录或用户家目录下的某个目录 步骤3:设置环境变量 - 临时设置:在终端中执行 ```bash export PATH=/path/to/toolchain/bin:$PATH ``` - 永久设置:将上述命令添加到`~/.bashrc`文件中 步骤4:验证安装 - 执行命令:`arm-linux-gnueabihf-gcc -v` 或 `arm-none-linux-gnueabihf-gcc -v`(根据实际工具链前缀) 注意:工具链的前缀可能略有不同,常见的有: - `arm-linux-gnueabihf-` - `arm-none-linux-gnueabihf-` - `arm-buildroot-linux-gnueabihf-`(如引用[2]和[3]中提到的) 在引用[2]中,配置Qt时使用的是`arm-buildroot-linux-gnueabihf-gcc`,而引用[1]则是`arm-none-linux-gnueabihf`。因此,用户需要根据自己获取的工具链的实际前缀来使用。 针对用户的问题,我们给出以下回答结构: 1. 澄清误解:工具安装开发主机,而非开发板。 2. 详细安装步骤(基于引用[1]和[3]提供的方法) 3. 环境变量配置方法 4. 验证方法 同时,生成相关问题。 注意:回答中要自然引用参考文献。 </think>在 i.MX6ULL 开发板上安装 `arm-linux-gnueabihf` 工具链需在 **开发主机(如 Ubuntu PC)** 进行操作,而非直接在开发板上安装。以下是具体步骤和原理: --- ### **安装步骤**(在开发主机执行) #### 1. **获取工具链** 根据引用[1][3],可通过两种方式获取: - **配套工具链**(推荐): ```bash # 解压配套工具链(约700MB) tar xzvf ToolChain.tar.gz ``` - **官方下载**: ```bash wget https://developer.arm.com/-/media/files/downloads/gnu-a/10.3-2021.07/binrel/gcc-arm-10.3-2021.07-x86_64-arm-none-linux-gnueabihf.tar.xz tar -xvf gcc-arm-10.3-2021.07-x86_64-arm-none-linux-gnueabihf.tar.xz ``` #### 2. **配置环境变量** ```bash # 添加到 ~/.bashrc(假设工具链路径为 /opt/toolchain) echo 'export PATH=/opt/toolchain/bin:$PATH' >> ~/.bashrc source ~/.bashrc ``` #### 3. **验证安装** ```bash # 检查编译器版本 arm-linux-gnueabihf-gcc -v # 应输出:gcc version 10.3.1 20210621 (ARM版本) ``` #### 4. **编译测试程序** ```c // hello.c #include <stdio.h> int main() { printf("Hello i.MX6ULL\n"); return 0; } ``` 编译命令: ```bash arm-linux-gnueabihf-gcc hello.c -o hello -march=armv7-a -mtune=cortex-a7 -mfpu=neon -mfloat-abi=hard ``` > 关键参数说明(引用[2]): > - `-march=armv7-a` : 指定 ARMv7-A 架构 > - `-mtune=cortex-a7` : 优化 Cortex-A7 核心 > - `-mfpu=neon` : 启用 NEON 浮点单元 > - `-mfloat-abi=hard` : 强制硬浮点加速 #### 5. **部署到开发板** ```bash # 将生成的 hello 文件拷贝到开发板 scp hello root@imx6ull-ip:/home # 在开发板执行 ./hello ``` --- ### **关键注意事项** 1. **工具链位置** - 工具链必须安装开发主机(x86_64架构的PC),通过交叉编译生成 ARM 可执行文件[^1][^3]。 - 开发板(ARMv7架构)仅运行编译后的程序,无法直接安装 x86_64 工具链。 2. **配置 Qt 开发** 如引用[2]所示,需修改 Qt 的 `qmake.conf`: ```makefile QMAKE_CC = arm-buildroot-linux-gnueabihf-gcc QMAKE_CXX = arm-buildroot-linux-gnueabihf-g++ QMAKE_LINK = arm-buildroot-linux-gnueabihf-g++ ``` 3. **常见问题解决** - **`arm-buildroot-linux-gnueabihf-gcc: command not found`**(引用[3]): 检查环境变量 `PATH` 是否包含工具链的 `bin` 目录。 - **启动介质限制**: i.MX6ULL 需从外部存储(如 SD 卡)加载程序,确保编译后的文件拷贝到正确介质[^4]。 --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值