本文章我们讲一讲如何在Linux系统上搭建ARM应用的开发环境。众所周知,基于x86架构的主流桌面操作系统主要分为Linux、Windows和MacOS三大阵营,这三种操作系统都可以搭建ARM应用程序的开发环境,本文我们介绍Linux系统上搭建开发环境,使用的是Ubuntu 20.04。
安装系统
首先,我们下载并安装Ubuntu 20.04,这里建议使用最新版本的操作系统,可以省去很多烦恼。比如老版本的操作系统没有新CPU的驱动,老版本的操作系统需要更新Linux内核等等。不得不说Ubuntu 20.04的UI还是比较惊艳的,对于我这个深度Windows用户来讲,还是比较容易上手的。注意安装过程中不要联网,很可能一不留神就在安装过程中联网更新了,国内的网速,你懂的。
配置系统
安装完成后,进入系统的第一件事情就是修改软件源不是联网,将软件源修改为“mirrors.aliyun.com”,这样通过命令下载软件时的效率会变高。这次我们可以通过软件界面修改,打开软件“Software & updates”,如下图所示操作。
交叉编译工具链
交叉编译工具链会在《玩转DragronBoard 410c系列之五:ARM交叉编译工具链介绍》这篇文章详细介绍,这篇文章只介绍下载及使用。我们使用的是linaro提供的工具链,可从arm官网下载,选择红色框框的任意一个种格式即可。该页面有很多下载选项,请注意甄别。
下载完成后,对该压缩文件进行解压,可用命令,也可用“归档管理器”解压。为了不使用root权限,我们再Home目录下新建一个“Enviroment”文件夹,然后将aarch64-none-linux-gnu解压到该文件夹下,如下图所示。
配置环境变量
修改Linux系统的环境变量有很多种方式,具体的使用方法如下,我们这里使用第二种
序号 | 特点 | 方法步骤 | 生效方式 |
---|---|---|---|
1 | 只对当前用户有效 | 1、通过命令修改.profile或.bashrc文件 $ sudo gedit ~/.profile 或 $ sudo gedit ~/.bashrc 2、在文件最后添加如下代码 export PATH=$PATH:/home/Enviroment/aarch64-none-linux-gnu/bin | 使用source命令立即生效 例如:$ source ~/.profile |
2 | 对所有用户有效 | 1、通过命令修改/etc/profile $ sudo gedit /etc/profile 2、在文件最后添加如下代码 export PATH=$PATH:/home/Enviroment/aarch64-none-linux-gnu/bin | source /etc/profile |
3 | 对所有用户有效 | 1、通过命令修改/etc/environment $ sudo su # sudo gedit /etc/environment 编辑PATH,两个路径之间用冒号隔离 PATH=PATH1:PATH2 | source /etc/enviroment |
4 | 临时变量,重启后失效 | 命令直接输入 $ export PATH=/home/linaro/qt-arm/bin:$PATH | 立即生效 |
修改完环境变量后,使用命令“echo $PATH”查询当前的环境变量,使用“aarch64-none-linux-gnu-g++ -v”查询交叉编译器版本号。
编译HelloWorld
首先新建一个文本文档,命名为helloworld.c,文档内容如下
#include <stdio.h> int main() { printf("hello world\n"); return 0; }
接着在Shell控制台切换到该文件目录下,然后使用命令行编译“aarch64-none-linux-gnu-g++ helloworld.c -o helloworld.arm”,-o表示输出,helloworld.arm表示输出的文件名称,可以任意命名,后缀随意取,也可不带后缀。Linux系统识别文件不依赖后缀,后缀只是帮助使用者快速识别文件类型的。
运行HelloWorld
我们直接在控制台输入“./helloworld.arm”,会报错“bash: ./helloworld.arm: cannot execute binary file: Exec format error”。这个说明我们生成的程序只能运行在ARM Linux上。我们将helloworld.arm文件使用FTP工具拷贝到Dragron Board 410c上,使用ssh连接到开发板,然后运行helloworld.arm程序,可以看到输出“hello world”。
文章评论