手机安装gcc,编译c程序(unyaffs解压/包工具)

前提
手机有root权限

一、下载gcc压缩包,电脑里解压
下载链接: https://pan.baidu.com/s/1lU9pa0ZiSJylNOfk7TT71Q 提取码: hf27
里面有这些文件:
在这里插入图片描述
二、用adb将gcc文件都传到手机
手机存放目录:/data/gcc(可自定)

c:\tmp\fastboot>adb push C:\tmp\gcc_android /data/gcc/
C:\tmp\gcc_android\: 1537 files pushed. 3.5 MB/s (41001656 bytes in 11.261s)

root@bbk82_wet_jb5:/data # ls -l ./gcc
drwxrwxr-x root     root              2022-03-14 21:52 gcc_android
root@bbk82_wet_jb5:/data # mv ./gcc/gcc_android/* ./gcc
root@bbk82_wet_jb5:/data # ls -l ./gcc
drwxrwxr-x root     root              2022-03-14 21:52 arm-linux-androideabi
drwxrwxr-x root     root              2022-03-14 21:52 bin
drwxrwxr-x root     root              2022-03-14 21:54 gcc_android
drwxrwxr-x root     root              2022-03-14 21:52 lib
drwxrwxr-x root     root              2022-03-14 21:52 libexec
-rw-rw-rw- root     root            8 2013-03-23 20:57 plugin_version
drwxrwxr-x root     root              2022-03-14 21:52 terminfo
drwxrwxr-x root     root              2022-03-14 21:52 tmpdir

三、修改文件权限(主要加可执行权限)

root@bbk82_wet_jb5:/data/gcc # chmod 755 ./bin/*
root@bbk82_wet_jb5:/data/gcc # chmod 755 ./arm-linux-androideabi/bin/*
root@bbk82_wet_jb5:/data/gcc # chmod 755 ./libexec/gcc/arm-linux-androideabi/4.7.1/*

四、配置环境变量

root@bbk82_wet_jb5:/data/gcc # export GCCHOME=/data/gcc
root@bbk82_wet_jb5:/data/gcc # export GCCPATH=$GCCHOME/bin:$GCCHOME/arm-linux-androideabi/bin:$GCCHOME/libexec
root@bbk82_wet_jb5:/data/gcc # export PATH=$PATH:$GCCHOME:$GCCPATH

五、传送并编译解压工具unyaffs(源码)
gcc -c unyaffs.c 编译
gcc -o unyaffs unyaffs.o 链接

C:\tmp\fastboot>adb push C:\tmp\unyaffs-master\unyaffs.c /data/jwj/
C:\tmp\unyaffs-master\unyaffs.c: 1 file pushed. 0.0 MB/s (2827 bytes in 0.118s)

C:\tmp\fastboot>adb push C:\tmp\unyaffs-master\unyaffs.h /data/jwj/
C:\tmp\unyaffs-master\unyaffs.h: 1 file pushed. 0.0 MB/s (3729 bytes in 0.082s)
root@bbk82_wet_jb5:/data/jwj # gcc -c unyaffs.c
root@bbk82_wet_jb5:/data/jwj # ls -l
-rw-rw-rw- root     root         2827 2008-12-29 18:06 unyaffs.c
-rw-rw-rw- root     root         3729 2008-12-29 18:06 unyaffs.h
-rw-r--r-- root     root         3536 2022-03-15 11:28 unyaffs.o
root@bbk82_wet_jb5:/data/jwj # gcc -o unyaffs unyaffs.o
/data/gcc/bin/../lib/gcc/arm-linux-androideabi/4.7.1/../../../../arm-linux-androideabi/bin/ld: warning: unyaffs.o uses variable-size enums yet the output is to use 32-bit enums; use of enum values across objects may fail

运行unyaffs:
出现问题:[1] + Stopped (signal) unyaffs /sdcard/data/system.img
Segmentation fault

root@bbk82_wet_jb5:/data/jwj # unyaffs  /sdcard/data/system.img
[1] + Stopped (signal)     unyaffs /sdcard/data/system.img
root@bbk82_wet_jb5:/data/jwj # ls -l /var/log/message
/var/log/message: No such file or directory
[1] + Segmentation fault   unyaffs /sdcard/data/system.img

原因:此system.img是ext4文件系统格式的,不能用unyaffs来解包

Administrator@jwj /usr/gccwin/bin
$ file c:/tmp/mstar-bin-tool-master/pack/system.img
c:/tmp/mstar-bin-tool-master/pack/system.img: Linux rev 1.0 ext4 filesystem data, UUID=57f8f4bc-abf4-655f-bf67-946fc0f9f25b (extents) (large files)

(yaffs2文件系统应是:VMS Alpha executable)

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

知行电子

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

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

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

打赏作者

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

抵扣说明:

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

余额充值