环境:
主机: windows 10 ,64位
VMware: Workstation Pro 15
子系统: ubuntu 18.04.6, 64位
下载交叉编译包:
交叉编译器: arm-linux-androideabi-4.6.tar.bz2

新建目录/homt/biren/gccarm
将包文件复制到此目录里
新建版本文件夹4.6
(/mnt/hgfs/tmpWin是虚拟机共享文件挂载点)
解压包文件到4.6里
biren@ubuntu:~$ mkdir gccarm
biren@ubuntu:~$ cp /mnt/hgfs/tmpWin/arm-linux-androideabi-4.6.tar.bz2 ./gccarm/
biren@ubuntu:~$ cd gccarm/
biren@ubuntu:~/gccarm$ mkdir 4.6
biren@ubuntu:~/gccarm$ tar -jxf arm-linux-androideabi-4.6.tar.bz2 -C ./4.6
biren@ubuntu:~/gccarm$ cd 4.6/
biren@ubuntu:~/gccarm/4.6$ ll
总用量 12
drwxrwxr-x 3 biren biren 4096 3月 30 21:45 ./
drwxrwxr-x 3 biren biren 4096 3月 30 21:45 ../
drwxr-xr-x 9 biren biren 4096 12月 6 2012 arm-linux-androideabi-4.6/
biren@ubuntu:~/gccarm/4.6$ mv arm-linux-androideabi-4.6/* ./
biren@ubuntu:~/gccarm/4.6$ ll
总用量 92
drwxrwxr-x 10 biren biren 4096 3月 30 21:46 ./
drwxrwxr-x 3 biren biren 4096 3月 30 21:45 ../
drwxr-xr-x 4 biren biren 4096 10月 15 2012 arm-linux-androideabi/
drwxr-xr-x 2 biren biren 4096 3月 30 21:46 arm-linux-androideabi-4.6/
drwxr-xr-x 2 biren biren 4096 10月 15 2012 bin/
-rw-r--r-- 1 biren biren 18002 10月 15 2012 COPYING
-rw-r--r-- 1 biren biren 26527 10月 15 2012 COPYING.LIB
drwxr-xr-x 3 biren biren 4096 12月 6 2012 include/
drwxr-xr-x 3 biren biren 4096 10月 15 2012 lib/
drwxr-xr-x 2 biren biren 4096 10月 15 2012 lib32/
drwxr-xr-x 3 biren biren 4096 10月 15 2012 libexec/
-rw-r--r-- 1 biren biren 1116 10月 15 2012 SOURCES
drwxr-xr-x 3 biren biren 4096 12月 6 2012 sysroot/
biren@ubuntu:~/gccarm/4.6$ rm -rf arm-linux-androideabi-4.6
配置交叉编译环境:
主要是设置path
biren@ubuntu:~$ export GCCARM46=/home/biren/gccarm/4.6
biren@ubuntu:~$ export PATH=$PATH:$GCCARM46:$GCCARM46/bin:$GCCARM46/libexec/gcc/arm-linux-androideabi/4.6:$GCCARM46/arm-linux-androideabi/bin
biren@ubuntu:~$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/home/biren/gccarm/4.6:/home/biren/gccarm/4.6/bin:/home/biren/gccarm/4.6/libexec/gcc/arm-linux-androideabi/4.6:/home/biren/gccarm/4.6/arm-linux-androideabi/bin
arm-linux-androideabi-gcc -v查看版本:
出现如下问题(之一):
- 没有那个文件或目录
- No such file or directory
- cannot execute binary file: Exec format error
biren@ubuntu:~/gccarm/4.6$ ./bin/arm-linux-androideabi-gcc -v
bash: ./bin/arm-linux-androideabi-gcc: 没有那个文件或目录
原因:是缺乏32位的支持包
解决上面问题:
下载并安装2个包:lib32ncurses5-dev,lib32z1
命令:
sudo apt-get install lib32ncurses5-dev
sudo apt-get install lib32z1
biren@ubuntu:~/gccarm/4.6$ sudo apt-get install lib32ncurses5-dev
[sudo] biren 的密码:
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
将会同时安装下列软件:
gcc gcc-7 gcc-7-multilib gcc-multilib lib32asan4 lib32atomic1 lib32cilkrts5
lib32gcc-7-dev lib32gcc1 lib32gomp1 lib32itm1 lib32mpx2 lib32ncurses5 lib32quadmath0
lib32stdc++6 lib32tinfo-dev lib32tinfo5 lib32ubsan0 libasan4 libatomic1 libc-dev-bin
libc6 libc6-dbg libc6-dev libc6-dev-i386 libc6-dev-x32 libc6-i386 libc6-x32
libcilkrts5 libgcc-7-dev libitm1 liblsan0 libmpx2 libncurses5-dev libquadmath0
libtinfo-dev libtsan0 libubsan0 libx32asan4 libx32atomic1 libx32cilkrts5
libx32gcc-7-dev libx32gcc1 libx32gomp1 libx32itm1 libx32quadmath0 libx32stdc++6
libx32ubsan0 linux-libc-dev manpages-dev
建议安装:
make autoconf automake libtool flex bison gcc-doc gcc-7-doc gcc-7-locales
libgcc1-dbg libgomp1-dbg libitm1-dbg libatomic1-dbg libasan4-dbg liblsan0-dbg
libtsan0-dbg libubsan0-dbg libcilkrts5-dbg libmpx2-dbg libquadmath0-d

本文讲述了在Windows通过VMware在Ubuntu上配置ARM交叉编译环境,从下载交叉编译包、解压与配置path,到遇到的问题如32位支持包缺失,再到解决方法、编译file源码和遇到的错误,最后成功编译并部署到手机系统的过程。
6824

被折叠的 条评论
为什么被折叠?



