苹果32位(A6)设备配置gcc教程

本教程基于iPad4 WiFi版iOS 10.3.3测试,理论上同样使用苹果末代32位处理器的iPhone5、iPhone5c通用。其他型号苹果设备也可一试。

一、 准备工作
1、 一台正常使用的iPad4,要求越狱(通过h3lix),尽量是全新越狱的设备,避免由于添加软件源不当导致软件包冲突。也可以通过coolbooter插件在双系统中安装gcc。
2、 在cydia中添加如下插件
Apple File Conduit “2” (Cydia/Telesphoreo 俗称afc2)
AppSync Unified (源: http://cydia.angelxwind.net/)
Filza File 文件管理器 (源: http://apt.abcydia.com/)
NewTerm 2 手机终端 (源: http://apt.cydiaba.cn/)
[终端也可以用 Mterminal (Bigboss)]
OpenSSH (Cydia/Telesphoreo)
APT 0.6 Transitional (Cydia/Telesphoreo)
以上插件不一定全部用得到,但是遇到问题时会有很大用处。
二、 搭建gcc编译环境
1、 熟悉NewTerm 2终端环境
从桌面打开NewTerm,看到熟悉的unix终端界面,不禁老泪纵横,输入su获取root权限。苹果默认密码alpine。可输入指令passwd并连续两次输入新密码来更改密码。以下各步骤需要在root中进行。

2、 安装wget
终端键入指令

apt-get update
apt-get install wget

3、 安装libgcc

wget http://apt.saurik.com/debs/libgcc_4.2-20080410-1-6_iphoneos-arm.deb
dpkg -i libgcc_4.2-20080410-1-6_iphoneos-arm.deb

4、 安装gcc

apt-get install iphone-gcc

5、 获取gcc所需头文件和库并安装(以下网址可能需要借助科学技术。如果ipad不能使用科学技术但是能够获得文件的,可以参考5-2)
5-1 直接通过命令安装

wget http://www.syshalt.net/iphone/gcc-iphone/sdk-2.0-headers.tar.gz
tar -xvzf sdk-2.0-headers.tar.gz
cd include-2.0-sdk-ready-for-iphone
cp -r * /usr/include
cd ..
wget http://www.syshalt.net/iphone/gcc-iphone/gcc_files.tar.gz
tar -xvzf gcc_files.tar.gz
cd gcc_files
cp -r * /usr/lib

*5-2 获取软件包后手动安装
通过filza file文件管理器,并参照5-1中的指令(看不懂指令百度)手动操作,不赘述。
5-3 磁盘空间不足
可以尝试将/usr/include/文件夹整体移动到/User/Stash文件夹中,并在/usr处建立快捷链接。
6、 安装常用命令和库

apt-get install ldid
apt-get install make
apt-get install vim
apt-get install curl
apt-get install sqlite3

7、 安装sed
至第6步理论上编译环境已经安装完成,但由于gcc版本较老,无法直接在A6处理器上直接运行,需要一些调教。

apt-get install sed

8、 用sed将gcc执行文件转换为A6支持的文件

cd /usr/bin
sed -i'' 's/\x00\x30\x93\xe4/\x00\x30\x93\xe5/g;s/\x00\x30\xd3\xe4/\x00\x30\xd3\xe5/g;' gcc
sed -i'' 's/\x00\x30\x93\xe4/\x00\x30\x93\xe5/g;s/\x00\x30\xd3\xe4/\x00\x30\xd3\xe5/g;' arm-apple-darwin9-gcc
sed -i'' 's/\x00\x30\x93\xe4/\x00\x30\x93\xe5/g;s/\x00\x30\xd3\xe4/\x00\x30\xd3\xe5/g;' arm-apple-darwin9-gcc-4.2.1
ldid -s gcc
ldid -s arm-apple-darwin9-gcc
ldid -s arm-apple-darwin9-gcc-4.2.1
cd /usr/libexec/gcc/arm-apple-darwin9/4.2.1
sed -i'' 's/\x00\x30\x93\xe4/\x00\x30\x93\xe5/g;s/\x00\x30\xd3\xe4/\x00\x30\xd3\xe5/g;' collect2   
sed -i'' 's/\x00\x30\x93\xe4/\x00\x30\x93\xe5/g;s/\x00\x30\xd3\xe4/\x00\x30\xd3\xe5/g;' cc1plus   
sed -i'' 's/\x00\x30\x93\xe4/\x00\x30\x93\xe5/g;s/\x00\x30\xd3\xe4/\x00\x30\xd3\xe5/g;' cc1objplus  
sed -i'' 's/\x00\x30\x93\xe4/\x00\x30\x93\xe5/g;s/\x00\x30\xd3\xe4/\x00\x30\xd3\xe5/g;' cc1obj  
sed -i'' 's/\x00\x30\x93\xe4/\x00\x30\x93\xe5/g;s/\x00\x30\xd3\xe4/\x00\x30\xd3\xe5/g;' cc1
ldid -s collect2   
ldid -s cc1plus   
ldid -s cc1objplus  
ldid -s cc1obj  
ldid -s cc1

三、 gcc编译环境的善尾工作
至步骤二-8,gcc已经可以正常运行。
编译c文件也可以正常通过产生a.out,但是a.out无法正常运行,出现了和步骤二-7一样的报错,这里就需要转换a.out文件。

sed -i'' 's/\x00\x30\x93\xe4/\x00\x30\x93\xe5/g;s/\x00\x30\xd3\xe4/\x00\x30\xd3\xe5/g;' a.out
ldid -S a.out

之后就可以顺利运行了。每次编译都需要对a.out文件处理。

参考:http://kimi.it/517.html
Edited by Grub

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值