交叉编译搭建

1.安装ssh工具

sudo apt-get install openssh-server 

2.下载教程编译器
Linaro GCC 编译器下载地址如下:
https://releases.linaro.org/components/toolchain/binaries/latest-7/arm-linux-gnueabihf/
最新版本 u-boot启动有问题,下载4.9版本的编译器,下载地址为 :
https://releases.linaro.org/components/toolchain/binaries/4.9-2017.01/arm-linux-gnueabihf/
关注这两种:
gcc-linaro-4.9.4-2017.01-i686_arm-linux-gnueabihf.tar.tar.xz
和gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz,
第一个是针对 32 位系统的,第二个是针对 64 位系统的
3.下载到拷贝到对应目录

sudo mkdir /usr/local/arm
sudo tar -vxf gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf.tar.xz

把对应的bin目录加到环境变量中

/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin

添加到/etc/profile中去,前面加上export PATH=$PATH:,最后就是

export PATH=$PATH:/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin

4.安装额外的c库

sudo apt-get install lsb-core lib32stdc++6 

5.验证编译器
记得拷贝完source /etc/profile,指令arm-linux-gnueabihf-gcc -v

klaus@ubuntu:~$ source /etc/profile
klaus@ubuntu:~$ arm-linux-gnueabihf-gcc -v 
Using built-in specs.
COLLECT_GCC=arm-linux-gnueabihf-gcc
COLLECT_LTO_WRAPPER=/usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/../libexec/gcc/arm-linux-gnueabihf/4.9.4/lto-wrapper
Target: arm-linux-gnueabihf
Configured with: /home/tcwg-buildslave/workspace/tcwg-make-release/label/docker-trusty-amd64-tcwg-build/target/arm-linux-gnueabihf/snapshots/gcc-linaro-4.9-2017.01/configure SHELL=/bin/bash --with-mpc=/home/tcwg-buildslave/workspace/tcwg-make-release/label/docker-trusty-amd64-tcwg-build/target/arm-linux-gnueabihf/_build/builds/destdir/x86_64-unknown-linux-gnu --with-mpfr=/home/tcwg-buildslave/workspace/tcwg-make-release/label/docker-trusty-amd64-tcwg-build/target/arm-linux-gnueabihf/_build/builds/destdir/x86_64-unknown-linux-gnu --with-gmp=/home/tcwg-buildslave/workspace/tcwg-make-release/label/docker-trusty-amd64-tcwg-build/target/arm-linux-gnueabihf/_build/builds/destdir/x86_64-unknown-linux-gnu --with-gnu-as --with-gnu-ld --disable-libmudflap --enable-lto --enable-objc-gc --enable-shared --without-included-gettext --enable-nls --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-mode=thumb --with-tune=cortex-a9 --with-arch=armv7-a --with-fpu=vfpv3-d16 --enable-threads=posix --enable-multiarch --enable-libstdcxx-time=yes --with-build-sysroot=/home/tcwg-buildslave/workspace/tcwg-make-release/label/docker-trusty-amd64-tcwg-build/target/arm-linux-gnueabihf/_build/sysroots/arm-linux-gnueabihf --with-sysroot=/home/tcwg-buildslave/workspace/tcwg-make-release/label/docker-trusty-amd64-tcwg-build/target/arm-linux-gnueabihf/_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/label/docker-trusty-amd64-tcwg-build/target/arm-linux-gnueabihf/_build/builds/destdir/x86_64-unknown-linux-gnu
Thread model: posix
gcc version 4.9.4 (Linaro GCC 4.9-2017.01) 
klaus@ubuntu:~$
### 设置和配置嵌入式 Linux 系统的交叉编译环境 #### 工具链安装 为了能够在主机上构建适用于目标 ARM 设备的应用程序,需要安装适合目标架构的工具链。对于基于 Ubuntu 的系统而言,通常会选择 `arm-linux-gcc` 这样的交叉编译器来为目标设备生成二进制文件[^2]。 #### 获取并安装交叉编译工具链 可以从 Linaro 或其他供应商获取预构建好的工具链包,也可以自行编译一个定制化的版本。一旦选择了合适的工具链,按照官方文档说明完成其部署过程即可。例如,在 Debian/Ubuntu 上可以通过 APT 安装: ```bash sudo apt-get update && sudo apt-get install gcc-aarch64-linux-gnu g++-aarch64-linux-gnu ``` 这将会安装支持 64位 ARM 架构 (AArch64) 编程所需的全部组件[^4]。 #### 配置环境变量 为了让命令行能够识别新安装的工具链,默认情况下可能需要调整 PATH 变量以便于访问这些工具。假设已知路径 `/opt/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin` 是所使用的工具链位置,则可以在 shell 中临时添加此路径到当前 session: ```bash export PATH=/opt/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin:$PATH ``` 如果希望永久生效,可以将上述语句加入用户的 `.bashrc`, `.zshrc` 文件中[^3]。 #### 测试编译链接 验证设置是否成功的一个简单方式就是尝试编写一段简单的 C/C++ 源码,并通过指定的交叉编译器对其进行编译。比如创建名为 `test_uart1.c` 的源文件之后运行如下指令来进行测试编译: ```bash aarch64-linux-gnu-gcc test_uart1.c -o test_uart1 -lpthread ``` 该操作应该不会报错并且会在工作目录下生产一个名为 `test_uart1` 的可执行文件,这个文件是专为 ARM 平台设计的。 #### 使用 Qt Creator 开发 GUI 应用 当涉及到图形界面应用程序开发时,Qt 提供了一个强大的框架以及集成开发环境 IDE —— Qt Creator 来简化整个流程。要让 Qt 支持特定硬件平台上的应用开发,还需要额外配置 QMake 和 qbs 构建系统以适应新的编译需求。具体步骤包括但不限于下载对应的目标板 SDK、定义 Kit 组件等[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值