ubuntu:16.04
Linux ubuntu 4.15.0-45-generic #48~16.04.1-Ubuntu SMP Tue Jan 29 18:03:48 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
arm-linux-gcc:4.4.3
1、下载交叉编译工具包,通过tar xzvf arm-linux-gcc-4.4.3.tar.gz解压,解压完目录如下:
2、配置环境变量:
3、执行arm-linux-gcc -v,检查检查编译工具是否安装成功
4、编写简单的程序进行测试。
arm-linux-gcc hello.c -o hello,结果成功生成hello可执行文件。
#include <stdio.h>
int main(void)
{
printf("hello,this is arm\n");
}
5、验证执行
通过ftp将生成可执行文件放到mini2440的板子上,测试执行。
安装时遇到的问题
1、在进行arm-linux-gcc -v 测试时,报错
[root@ubuntu bin]#arm-linux-gcc -v
/home/zjg/Desktop/opt/FriendlyARM/toolschain/4.4.3/bin/arm-linux-gcc: 15: exec: /home/zjg/Desktop/opt/FriendlyARM/toolschain/4.4.3/bin/.arm-none-linux-gnueabi-gcc: not found
原因:
ubuntu的环境位64位系统,arm-linux-gcc为32位系统。在64位Linux系统下无法兼容32位交叉编译器。
解决方法:
下载一些32位的库文件。
sudo apt-get install libc6-i386
2、执行apt-get install libc6-i386时,遇到依赖问题。
错误原因:我们需要2.19版本的libc6,但是当前下载的libc6版本为2.23版本,不匹配。
解决方法:
在/etc/apt/sources.list添加合适的源,有的源会不合适。
deb http://mirrors.aliyun.com/ubuntu/ vivid main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ vivid-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ vivid-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ vivid-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ vivid-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ vivid main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ vivid-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ vivid-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ vivid-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ vivid-backports main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ trusty main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ trusty-security main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ trusty-updates main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ trusty-backports main restricted universe multiverse
deb http://ftp.cn.debian.org/debian sid main // 添加的源
通过上面的方法,arm-linux-gcc -v可以正常执行。
3、在编译hello.c文件时报错,说缺少某些库
缺少libstdc++.so.6
解决方法:sudo apt-get install lib32stdc6 //一定要下载32位的 (库文件对应的包一般为去掉so,然后加数字)。
缺少libz.so.1库
解决方法:sudo apt-get install lib32z1 //一定要下载32位的