iOS 上搭建C/C++开发环境 Beta

11.02.24更新:这有一个别人写的简单版,更方便。

    先说一下效果吧,STL啥的试了几个可用,成功编译了我之前写的一个垃圾程序,过多的测试还没有做,应该能满足基础需求。

    标题之所以加了Beta,是因为笔者也是参考各路教程,东拼西凑才把GCC搭建好的,过程相当混乱,有些步骤也可能有遗漏,因此本文仅供参考,尽量不要完全遵照这个教程。

搭建过程如下:

  1. 当然是越狱,装Cydia,这个不多说了,有锁的注意,小心变砖。
  2. Cydia里安装OpenSSH,APT 0.6 Transitional,Aptitude,wget,unzip,zip
  3. SSH到你的iphone上,这里强烈建议把iphone的root和mobile用户的密码改了,保证机器的安全。
  4. 找一个你喜欢的文件夹:
    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
    apt-get install iphone-gcc ldid make
    wget下载的那个deb包之后可以删除,随你。另外libgcc那个不用费心去看是否有新版,就用这个就行。
  5. 下载这个附件,把里面的libSystem.dylib放到iphone的 /usr/lib/ 目录下
  6. 这一步仅供测试用,终端上输入:
    echo 'main() { printf("Hello, world!\n"); }' > hello.c
    gcc -o hello hello.c
    ldid -S hello
    ./hello
    ldid是给编译好的程序签名,要不然iphone不会让你运行
  7. 之后就有些混乱了,在Cydia里先后安装了GNU Debugger, C++ Standard Library, iPhone 2.0 Toolchain, 这里面也许有不需要的,但是不想再刷机测试一下。
  8. 现在如果我没有遗漏什么步骤的话,测试stdio.h等c的头文件应该是OK的,C++的iostream等好像还不行,编译时提示应该是找不到usr/include/c++/4.0.0/bits/c++config.h这个文件。此时把第5步中下载的那个附件中的include.tar.gz中的usr/include/c++/4.0.0/ 中的arm-apple-darwin8,拷贝到iphone /usr/include/c++/4.0.0/ 下,然后在bits/ 中建立arm-apple-darwin8/ 中所有文件的链接,因为这里有我们需要的c++config.h,直接拷贝这些文件到bits下也应该可以。
  9. 之后用g++编译一个测试文件出现的错误提示应该是找不到 -lstdc++,原因其实是缺少libstdc++.dylib这个文件,这个文件我是在XCode里面找的,尝试了几个找到了个好用的,但是不知道具体是哪一个了,第5步那个附件里也提供了,是从iphone中拷出来的,应该好用。

到此就应该能实现预期的目标了,我能回忆起的过程也就是这些了,大家有问题留言吧。

附参考文献:

  1. 【ipod4g出品】用 iPhone gcc 编译 iPhone SDK 游戏(真机开发、运行及调试) 
  2. iphone-gcc