前提:
1、先破解(jailbreak)iPod touch/iPhone,weiphone上有很多教程,我是升级到了2.2版本。
2、有安装cydia(通宵会在破解的时候就安装的),从linux上的apt移植而来的,所以apt-get,apt-cache那些命令和linux完全一样
3、建议使用putty ssh连接到ipod touch/iphone(如何连接请参考其它文章)
第一步
用Cydia搜索gcc编译工具,应该比较容易找到的,另外还需要安装ldid用来对程序进行签名,没有签名的程序是无法在ipod touch上运行的。可以利用cydia直接进行操作,也可以使用ssh连接到ipod touch上进行操作,使用apt-get install 命令,后面跟包的名字就行了。
第二步
这时候如果编写一个简单的C语言程序
vi hello.c
输入
#include <stdio.h>
int main()
{
printf("Hello, world!/n");
}
然后gcc hello.c -o hello,可以发现连stdio.h都找不到。
如果可以下载toolchain应该可以直接安装,不过我在cydia中找不到toolchain,那样只能自己去下载相关头文件,这里给出的是weiphone的链接,下载sdk-2.0-headers.tar.gz
第三步
在putty中
cd /var
tar xvzf sdk-2.0-headers.tar.gz
mv include-2.0-sdk-ready-for-iphone include
然后可以用ipod touch进行编译,由于/var/include不是gcc 的默认搜索路径,需要指明其路径,也可以将文件移动/usr/include中,或者/usr/local/include中,我采用的方法是在/usr/local中创建一个软链接到/var/include
第四步
gcc hello.c -o hello
正常情况应该编译成功
不过会出现killed,这是因为mac对程序运行权限的限制,只有签名过的软件才能运行
这时候用前面有ldid -S hello 进行签名
然后运行./hello成功
这只是一个命令行下的"hello world",参考文献给出了一个带图形界面的简单程序,有举的可以参考下。
参考文章
Developing for the iphone using the open toolchain and SDK 2.0 headers lunedì, 08 settembre 08
http://antirez.com/m/p.php?i=187