系统环境:Ubuntu 16.04 LTS(64位)
开发板:致远IoT-A3352LI V1.00(Cortex-A8)
安装官方提供的 arm-none-linux-gnueabi
推荐使用官方提供的工具,按照官方的指导手册来做会避免很多不必要的麻烦。手动安装更新的工具,有可能会引起系统其他软件的不兼容。
解压 arm-2011.03-41-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 安装包到 /opt 目录下:
tar -zxvf arm-2011.03-41-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 /opt
生成文件夹 arm-2011.03
,
修改 ~/.bashrc 文件,在 PATH 变量中增加交叉编译工具链的安装路径,
然后运行 ~/.bashrc 文件,使设置生效。
# User specific environment and startup programs
PATH=$PATH:**/home/ctools/arm-2011.03/bin** #增加交叉编译器安装路径
运行.bashrc 文件的方法,进入用户主目录,输入. .bashrc 命令( 点+空格.bashrc)。
在终端输入 arm-none-
并按 TAB 键, 如果能够看到很多 arm-none-linux-gnueabi- 前缀的
命令, 则基本可以确定交叉编译器安装正确。
64位系统请注意!
上述的利用 TAB 键补全的测试方法其实不能表示交叉编译环境已配置成功,请使用命令:
arm-none-linux-gnueabi-gcc -v #任何后缀均可
64位系统会出现 arm-none-linux-gnueabi-gcc: 没有那个文件或目录
的提示,google搜索可知:
“The problem has been solved, because I installed the amd64.iso linux system,so first must excuse apt-get install lsb-core,then you can excuse arm-linux-gcc -v”
解决方法:
apt-get install lsb-core
如配置成功会显示如下信息:
如果上述方法未成功,请再往下看(未测试)
在 /etc/profile 中添加交叉编译环境的目录(加入到文件最后):
export PATH=$PATH:/usr/local/arm/4.2.2-eabi/usr/bin
更新一下该配置文件:
source /etc/profile
此时在终端输入 arm-none-
并按 TAB 键, 如果能够看到很多 arm-none-linux-gnueabi- 前缀的
命令, 则基本可以确定交叉编译器安装正确。
如果还未成功配置。继续配置(未测试),在 /etc/environment 中的 PATH 末尾添加 arm-2011.03 的路径:
/opt/arm-2011.03/bin
推荐使用 arm-none-guneabi-gcc -v
指令查看配置结果。
在这里,PATH 的手动输入配置该怎么写,请参考该文件中已有的字段。
使用Ubuntu软件源中的 arm-linux-gcc 工具
诸如 raspberry pi 这类的开发板,可以在线升级系统,使用最新的工具一般都没有什么问题。但还是建议以官方为准,比较稳定。
使用 Ubuntu 官方源中的 arm-linux-gcc 工具
sudo apt-get install gcc-arm-linux-gnueabi
如果提示未找到软件包,是因为Ubuntu系统版本不是官网支持的最新的版本,请升级。执行以上命令即可。
进行交叉编译(注意:在64位Linux系统上,需要安装lsb-core
,否则,编译好的可执行文件可能在arm板上无法运行):
arm-linux-gnueabi-gcc hello.c -o hello
下载到开发板上,为文件添加可执行权限,执行:
ok!