当前位置 博文首页 > shappy1978的专栏:在iPad上写代码并用GCC编译

    shappy1978的专栏:在iPad上写代码并用GCC编译

    作者:[db:作者] 时间:2021-08-19 18:38

    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..

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

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

    cs