本教程基于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

苹果32位(A6)设备配置gcc教程相关推荐

  1. 宝塔面板32位版修改安装教程

    首先下载安装的可执行文件 wget -O install.sh http://download.bt.cn/install/install.sh 打开install.sh nano install.s ...

  2. win7系统32位( 联想)台式电脑自动开机、关机图文详细解(二)

    win10 64位 系统自动开关机 教程:https://mp.csdn.net/editor/html/116008045 win7 32位 系统自动开关机 教程:https://mp.csdn.n ...

  3. dev c++ 64位_RHEL7.8添加本地源以及扩展GCC,C++的32位和静态库支持

    初次安装系统后,需要配置一下yum本地源,这是因为,我们需要的软件系统默认安装过程中许多软件没有安装 1:配置本地yum源 配置本地yum源是通过本地映射光盘挂载到系统中,然后将yum的配置文件中的 ...

  4. python安装教程32位-python为什么要装32位的

    Python(发音:英[ˈpaɪθən],美[ˈpaɪθɑ:n]),是一种面向对象.直译式电脑编程语言,也是一种功能强大的通用型语言,已经具有近二十年的发展历史,成熟且稳定.它包含了一组完善而且容易理 ...

  5. 破解32位NT6内核系统(vista/win7 8G以上)的内存限制,完美支持4GB至128GB内存,全新教程!

    注意:执行本修改后可能在屏幕右下角出现,"测试模式 内部版本 7601"等字样,请勿试图使用"bcdedit /set testsigning off"命令修复 ...

  6. ubuntu 64上的GCC如何编译32位程序

    运行命令 gcc -v 显示: Target: x86_64-linux-gnu 所以,我这里的gcc默认生成64位的程序. 如果想编出32位的程序,就要加 -m32选项.可是我尝试了,还是不行. 原 ...

  7. git 32位_完整的GIT笔记 快速上手小白教程

    GIT 是什么? Git 是目前世界上最先进的分布式版本控制系统.并且它是一个免费的.开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目. 什么是版本控制系统 版本控制是一种系统,它跟踪一 ...

  8. 32位系统是指地址_不起眼却很重要丨32位操作系统与64位操作系统详解(含查询教程)...

    大家好,我是小诸葛,一个喜欢捣鼓电脑的小机灵鬼儿,如果关注电脑 手机信息,可以关注小诸葛! 小诸葛 在下载软件的时候,可能会遇到需要选择32位或64位操作系统的选项,对小白来说,32跟64是什么都不知 ...

  9. 32位服务器系统安装教程,服务器系统数据库安装教程

    服务器系统数据库安装教程 内容精选 换一换 应用容器化改造有三种方式,您可单击这里查看.本教程以某游戏为例,将该游戏进行微服务的架构改造,再进行容器化.本教程不对改造细节做深度讲解,仅讲解大致的建议. ...

最新文章

  1. 抽取文档主题之gensim实现
  2. JDK自带VM分析工具jps,jstat,jmap,jconsole
  3. 程序猿果真有前端后端client吗
  4. 关注:Eclipse,转贴eclipse CDT的开发文章
  5. 第二季2:/package/mpp/sample的总体分析
  6. 与时间赛跑:微盟的数据恢复为什么需要这么长时间
  7. 分析方法的基础 — 3. 业务与管理的特性,分析与设计的抓手
  8. java比c,Java比C ++更好
  9. python单链表实现荷兰国旗问题_[算法题] 荷兰国旗问题
  10. max(tm)财务进销存管理系统1.3.3.2mysql网络版_Max(TM)财务进销存管理系统
  11. 想搭建一个手游平台怎么做?需要了解哪些细节?
  12. 简单的酒店管理系统(纯属练手)
  13. GP数据库获取指定时段的所有天数
  14. DM6437的中断和事件
  15. C语言求:哥尼斯堡七桥问题
  16. 无聊吗?写个【飞机大战】来玩吧(下篇)
  17. 阿里云天池大数据长期赛:金融风控-贷款违约预测(含代码)
  18. c++pthread多线程消费者问题
  19. 北京小学几年级学计算机,北京小学低年级开学时间2021最新消息
  20. WPF WPF布局元素

热门文章

  1. 重学python-1
  2. Mysql灵魂总结,知识重点,入门到精通,全细节,一篇到运维!
  3. Office 2016安装包与教程
  4. VS 打包错误:要在“系统必备”对话框中启用“从与我的应用程序相同的位置下载系统必备组件”
  5. 华为荣耀升级android8,华为荣耀手机升级EMUI8/Android8.0前注意事项
  6. 微淼商学院php面试_分享下我在5,6月份求职的面经
  7. caffe python layer
  8. js表单基本验证技术
  9. 菜菜的sklearn课堂——随机森林
  10. KMeans算法初识