在iPad上写代码并用GCC编译

http://viaxl.com/?p=1202

 

对于不想折腾就像体验一下用iPad敲敲代码的同学来说, 蓝牙键盘 + 一个叫textastic的带语法高亮的文本编辑器app就能满足你的需求

iPad十几个小时的续航和轻薄的体型, 再加上才买了蓝牙键盘, 实在是让我不能不想用它来写代码. 下面介绍我在iPad上最终成功运行Vim和编译运行代码的经验.

想要运行代码肯定首先要破解.. 苹果的销售策略里, app是不能运行脚本的, 就是说不能运行任何自定义的程序.

Apple is acting as a gatekeeper for what is and isn’t allowed on your device. I heard that Apple would never allow a scripting language to be installed on your iPad because it would allow end users to run code that they hadn’t verified.

摘自 http://jjinux.blogspot.com/2010/05/apple-ipad-and-emacs.html

越狱我就不多嘴了, 假设你已经越狱, 并且假设你的iPad是免费的 >=P

我的系统是3.2.2, 3系列的应该不会有问题, 4往上可能需要不同的fake-libgcc(我下面有提, 我觉得就是把系统环境伪装成2.0的系统从而让针对2.0系统开发的iphone-gcc可以工作)

获取终端

在cydia首页可以找到openSSH的下载链接, 下载&安装后, iPad就启动了SSH service.  装一个叫iSSH的app, 在iPad上运行Terminal的原理就是连接本地的SSH, 并不是底层破解  root的密码默认为alpine.

安装GNU GCC

根据 这篇文章, 但是此文是针对2.0系统的, 我3.0系统就纠结了很久, 最终整理如下:

1. 用一个叫fake-libgcc的玩意来做一些动态链接, 让3.0的系统可以iphone-gcc(本来2.0能用), 我上传到了这里. 可以下到电脑上然后通过ssh通道发送到iPad的 /var/, 当然也可以用iPad终端直接wget下载(需要在cydia里安装wget).

接着安装大便包

dpkg -i fake-libgcc_1.0_iphoneos-arm.deb

2. 安装iphone-gcc

apt-get install iphone-gcc

(cydia安装貌似和终端apt-get是一样的)

安装库文件

先谈一谈我对这一团乱麻的理解: 首先我们编译代码需要用的是GNU GCC, 安装的iphone-gcc显然是非官方开发的, 然后库文件是苹果提供的iPad SDK中的. 因为iphone-gcc是针对2.0系统开发并且没有后续更新, 它需要用到的一些文件在后面的iOS中位置变了, 所以需要fake-libgcc来做一些链接从而使其能正常工作.  下面我们装的库文件也要手动做一些动态链接.

1. 先下载文件, 网上找的 “3.2 SDK (iPad) 头文件 147.1MB” 太大了, 因为这是完整的SDK, 我们现在就用到lib文件夹, 我拎出来上传了, 点这里下载GCC用头文件for iPad 3.2, 解压到iPad的 /usr/lib/ 下, 替换什么的无所谓..

2. 然后需要做一些动态链接, 让GCC能找到这些lib.

先删除 libstdc++.dylib, libSystem.dylib, 这两个本来也是动态链接, 但是我用的时候不对, 先删了再分别建立libstdc++.6.0.9.dylib, libSystem.B.dylib这两个文件的动态链接. 命令为:

cd /usr/lib/

ln -s libstdc++.6.0.9.dylib libstdc++.dylib

ln -s libSystem.B.dylib libSystem.dylib

应该就可以了

关于Editor

可以apt-get install vim, 嘿嘿, 我本来更愿意用emacs, 但是没有for for A4 processor的系统的Emacs, 只有个叫mg的东西, 看wiki这个东西还挺牛逼, 精简版的Emacs, 已经有24年的历史.. 并且现在还成为了OpenBSD的一部分. 就是我用了一会觉得实在不习惯, 好多快捷键都不一样, 并且在蓝牙键盘+iSSH的环境下频繁按Ctrl还是挺郁闷的 (对了iSSH一定要用4.5.1以后的, 不然不识别蓝牙键盘的Ctrl). 并且这个系统上开发的还不稳定, 经常出错/崩溃.. 所以对VIM顿生好感, 所有系统上都有, 稳定, 牛逼啊, 虽然比较变态就是了.. 对了但是Esc还不好按, 应该可以解决..

还有选择就是类似textastic这种app.. 文件存在/Application/什么什么下面, 自己locate一下就好

未完待续

刚买iPad就像在上面编译代码, 弄弄没激情了, 今天蓝牙键盘到了又来兴趣整了整, 晚上终于Hello World了很开心, 先记一下.

还有很多东西没弄, 比如gdb..

本文很多地方是学习了这个贴子, 我更注重记录自己的理解, 不至于下捣鼓不知道干了什么. 如果有同学对于细节不清楚怎么操作的话可以看下那个帖子.

本文年代久远.. 几个月前写了一点, 可能有出错的地方, 谁能指出的话非常感谢:)

你可能感兴趣的:(iPhone)