手机里安装判断文件格式的命令file,ubuntu里配置交叉编译和32位库lib32ncurses5-dev、lib32z1

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

环境:

主机: 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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

知行电子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值