开发环境搭建之交叉编译

什么是交叉编译

交叉编译是指在一个平台上生成可以在另一个平台上执行的代码。由于不同的体系结构有不同的指令系统。因此,不同的cpu需要有相应的编译器,而交叉编译就如同翻译一样,把相同的程序代码翻译成不同的cpu的对应的可执行的二进制文件。

交叉编译链安装

建立交叉编译环境又可分为安装SDK(其中包含了交叉编译工具链)和设置交叉编译环境变量。

SDK路径:EF1开发板资料包/06-常用工具/06-1 编译工具安装脚本/fsl-imx-x11-glibc-x86_64-meta-toolchain-qt5-cortexa7hf-neon-toolchain-4.1.15-2.0.0.sh

将上述资料拷贝到ubuntu系统的/home/elf目录下。

并在该目录下执行:

elf@ubuntu:~$ sudo ./fsl-imx-x11-glibc-x86_64-meta-toolchain-qt5-cortexa7hf-neon-t\oolchain-4.1.15-2.0.0.sh

命令行会提示:Enter target directory for SDK (default: /opt/fsl-imx-x11/4.1.15-2.0.0)

连续两次按下回车键,程序将会自动安装交叉编译工具链(交叉编译工具链安装一次即可,更换终端或重启系统不必重新安装)。安装过程中一定要保证网络畅通,Ubuntu系统可以访问外网。

等待SDK安装,如下图通过打印信息可以看出安装成功。

交叉编译链使用

设置环境变量

注意:

  1. 设置环境变量之后,只要不更换终端,下次再编译就不需要重新设置。
  2. 如果重新打开新终端或者切换账户,编译前需要重新设置环境变量。

设置编译环境主要是指定目标架构和交叉编译工具链,以及编译过程中使用到的一些库的路径等,使用如下命令配置(.后边有空格):

. /opt/fsl-imx-x11/4.1.15-2.0.0/environment-setup-cortexa7hf-neon-poky-linux-gnueabi

然后使用命令arm-poky-linux-gnueabi-gcc -v判断是否设置成功(注:-v前边有空格)。正常情况下会打印出gcc的版本信息:gcc version 5.3.0 (GCC)。

编译helloworld

在讲“GCC编译器”章节,使用ubuntu的GCC编译器编译生成了hello_ubuntu程序,在此章节,将使用安装的开发板的交叉编译器编译同一个hello.c文件,生成hello_board程序,使用file文件可以看出两个交叉编译器的不同。

注意:执行环境变量后,交叉编译工具重命名为CC,在编译程序时需要用$CC。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值