展开/收起
1 2 3 4 5 6
88232阅读 | 75回复

[教程] 用 iPhone gcc 编译 iPhone SDK 游戏 (真机开发、运行及调试)

[复制链接]
320主题127帖子1万人气

级别: WEIP技术组

【ipod4g 加入技术组】

帖子
127
经验
4389
精华
8
人气
15377
发表于 2010-4-24 21:54:02 |浏览量 | |阅读模式
本帖最后由 ipod4g 于 2014-1-11 16:24 编辑

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




① 在 cydia 内安装 deb 包


    wget (下载工具)
    Aptitude 及  APT 0.6 Transitional (deb 包工具)
    unzip 及 zip (解压缩及压缩打包工具)

② 用 PuTTy / ssh 连接iPhone / iPod Touch
,假设你的iPhone / iPod Touch 的IP地址是192.168.1.104

PuTTy 下載 http://putty.very.rulez.org/latest/x86/putty.exe
winscp 下載 http://winscp.net/eng/download.php

用 wifi 连接

Connection type: 选 SSH
Port 选 22
Open



PuTTY 连接 192.168.1.104 后

Login 打 root
Password(假设你没有更改密码) 打 alpine

苹果电脑用內置的 Terminal 便可
在 Terminal 内打
  1. ssh root@192.168.1.104
复制代码


不用 wifi 连接

没 wifi 用 iPhone Tunnel Suite 3.0
http://bbs.feng.com/read-htm-tid-597149.html

苹果电脑用 iPhoneSSH
http://bbs.feng.com/read-htm-tid-720564.html

③ 安装iPhone gcc 及签名工具

(先决条件是已用PuTTy / 苹果电脑 Terminal 连接iPhone / iPod Touch)
PuTTy/ 苹果电脑 Terminal 内打

  1. wget http://apt.saurik.com/debs/libgcc_4.2-20080410-1-6_iphoneos-arm.deb
  2. dpkg -i libgcc_4.2-20080410-1-6_iphoneos-arm.deb
  3. apt-get install iphone-gcc ldid make
复制代码
安装 libSystem

  1. cd /usr/lib/
  2. ln -s libSystem.B.dylib libSystem.dylib
复制代码
④ iPhone gcc 测试 hello.c

(先决条件是已用PuTTy / 苹果电脑 Terminal 连接iPhone / iPod Touch)
PuTTy / 苹果电脑 Terminal 内打

  1. echo 'main() { printf("Hello, world!\n"); }' > hello.c
  2. gcc -o hello hello.c
  3. ldid -S hello
  4. ./hello
复制代码
⑤ 下载 sys30Libheader.tgz


115 下载: http://115.com/file/bhy2hnjb

3.0 SDK 头文件 RAY 网盘下载

到路径 /var/root/

⑥ 安装 3.0 SDK 头文件

(先决条件是已用PuTTy / 苹果电脑 Terminal 连接iPhone / iPod Touch)
PuTTy / 苹果电脑 Terminal 内打

  1. mkdir -p /var/toolchain
  2. cd /var
  3. tar xzvf /var/root/sys30Libheader.tgz
复制代码
iPhone gcc 测试 enum.m

  1. // enum.m
  2. #import <Foundation/Foundation.h>

  3. @interface NSString (printing)
  4.    - (void) print;
  5. @end
  6. @implementation NSString (printing)
  7.    - (void) print
  8.    {
  9.      fprintf(stderr, "%s\n", [self UTF8String]);
  10.    }
  11. @end

  12. int main(void)
  13. {
  14.      [NSAutoreleasePool new];
  15.      NSArray* a =
  16.          [NSArray arrayWithObjects: @"this", @"is", @"an", @"array", nil];

  17.      NSLog(@"The_Objective-C_1_way:");
  18.      NSEnumerator *e=[a objectEnumerator];
  19.      for (id obj=[e nextObject]; nil!=obj ; obj=[e nextObject])
  20.      {
  21.          [obj print];
  22.      }
  23.      NSLog(@"The_Leopard_way:");
  24.      for (id obj in a)
  25.      {
  26.          [obj print];
  27.      }
  28.      NSLog(@"The_simplest_way:");
  29.      [a makeObjectsPerformSelector: @selector(print)];
  30.      return 0;
  31. }
复制代码
测试编译及运行 enum.m

PuTTy / 苹果电脑 Terminal 内打

  1. arm-apple-darwin9-gcc -framework Foundation -I"/var/toolchain/sys30/usr/include" -L"/var/toolchain/sys30/usr/lib" -F"/var/toolchain/sys30/System/Library/Frameworks" -bind_at_load -multiply_defined suppress -march=armv6 -mcpu=arm1176jzf-s -std=gnu99 -O0 -g -o enum enum.m
  2. ldid -S enum
  3. ./enum
复制代码
⑦ 下载 IVBricker.zip 源代码

   IVBricker_CoreAnim.zip (46 KB, 下载次数: 662)

评分11

评分次数11

we券+10 经验+10 人气+61

收起
onda163 + 5 2014-1-10 11:17精品文章^_^
437693242 + 3 2013-10-9 17:53威锋有你更精彩:)
ccc008 + 3 2013-10-2 01:11是不是对系统有限制呢 我在iPhone4 ios6.1.2上编译 mm提示ld: framework not found Fo.
威了个锋啊 + 1 2012-2-19 15:36精品文章^_^
suzhaolun + 3 2012-1-27 09:54威锋有你更精彩:)
狮面人身 + 3 2011-10-21 22:53靠,如此牛叉!
linjifirst + 3 2011-10-3 18:59学了一半还是放弃了。。
shimenghl + 3 2010-5-16 00:18感谢你的无私奉献!!
kingone + 5 2010-5-14 00:02谢谢,学习中
wdxz5586 + 10 + 10 + 20 2010-5-3 15:46精品文章+助人为乐
stoneagegz + 12 2010-4-25 13:56精品文章^_^

Signature

欢迎加入iOS 开发资源共享,qun hao ma :615727308

http://bbs.feng.com/read-htm-tid-5259660.html 在 iPhone 或 iPad 安装 iphone gcc llvm-clang, THEOS 编译程序或插件

http://bbs.feng.com/read-htm-tid-2114166.html【ipod4g出品】 修改 iPhone 游戏作弊版教程

http://db.tt/nDnLMGd

bitcoin 1GxMy4EjCjbqkqAUCj1jH4hMtLGGaKzfVh

创新很重要,但不是一切。执行力才是最关键的
146主题98帖子2166人气

级别: 金苹果

我的微博http://t.sina.com

帖子
98
经验
1994
精华
人气
2166
发表于 2010-4-25 13:56:21 |
大神的帖子一定顶, 沙发。
136主题19帖子1742人气

级别: 金苹果

Twsky Wutian

帖子
19
经验
2321
精华
人气
1742
发表于 2010-4-30 19:02:51 |
LZ测试hello.c时 # gcc -o hello hello.c killed # ldid -S hello ./minimal/mapping.h(54): _assert(2:false) 怎么解决阿?弄了一下午了

Signature

0主题0帖子0人气

级别: 小苹果

帖子
0
经验
10
精华
人气
0
发表于 2010-5-1 19:07:02 |
very good!study
136主题19帖子1742人气

级别: 金苹果

Twsky Wutian

帖子
19
经验
2321
精华
人气
1742
发表于 2010-5-3 11:55:53 |
问题已找到!~~非常感谢LZ的热心帮助!~ 在④ iPhone gcc 测试 hello.c 之前 先到Cydia安装toolchain 再将附件中的文件解压,将libsystem.dylib放入/usr/lib 成功编译并跑出 Hello, iPhone!

libSystem.dylib.zip

653 KB, 下载次数: 702

解压放入/usr/lib

Signature

173主题252帖子1147人气

级别: 白金苹果

我佛慈悲

帖子
252
经验
4604
精华
人气
1147
发表于 2010-5-14 00:02:02 |
谢谢楼主的帖子,写得很棒,收藏,学习

Signature

造梦师基础版开发中,想内测体验的朋友请站内信
0主题20帖子0人气

级别: 小苹果

帖子
20
经验
43
精华
人气
0
发表于 2010-5-15 14:28:31 |
呵呵,谢谢楼主分享

Signature

天行健,君子以自强不息…
jjj6618
5主题0帖子-2人气

级别: 禁止发言

帖子
0
经验
72
精华
人气
-2
发表于 2010-5-15 17:08:17 |
学习学习
0主题0帖子0人气

级别: 小苹果

帖子
0
经验
10
精华
人气
0
发表于 2010-5-22 23:04:25 |
本人的机器是 iphone 3GS 港行 46 周的,前不久刚将系统更新为 OS3.1.3 并用 Spirit 完美越狱,然后找到 lz 的该篇文章(网上对在 iphone 上进行编译和开发的说明好少!在这里谢谢一下 lz!),但在操作过程中发现一些问题,并找到相应的解决方法,在这里记下:
  1. apt-get install iphone-gcc ldid make
复制代码
按照 lz 的说明按顺序操作,在用这行命令安装后,ldid 和 make 可以正常使用,但使用 gcc 命令会提示
-sh: gcc: command not found
最后发现是因为用 apt-get install iphone-gcc 命令安装后,实际安装的是 iphone-gcc_4.2-20090304-1-9_iphoneos-arm.deb,而该安装包是有问题的,安装出来的 gcc 不能正常使用。 解决方法: 1. 如果之前因为执行 apt-get install iphone-gcc ldid make 命令安装了 gcc 的,可以用 apt-get remove iphone-gcc 命令先将之前装的 gcc 卸载 2. 重新安装 gcc,具体做法是
  1. wget http://apt.saurik.com/debs/iphone-gcc_4.2-20080604-1-8_iphoneos-arm.deb
  2. dpkg -i iphone-gcc_4.2-20080604-1-8_iphoneos-arm.deb
复制代码
3. 下载 sdk-2.0-headers.tar.gz 并上传到 /var/ 目录下   sdk-2.0-headers.tar.gz 包可以在 this torrentthis link from megaupload 下载到   不过该包里面的内容在 sys30Libheader.tgz 里都应该已经有了,这里提供该包下载和使用的说明,只是为了能正常编译 hello.c 而作的 4. 解压
  1. cd /var/
  2. tar xvzf sdk-2.0-headers.tar.gz
  3. mv include-2.0-sdk-ready-for-iphone include
复制代码
5. 编辑 c 代码   用 Cydia 安装 new vi 后,然后创建 hello.c
  1.   vi hello.c
复制代码
  代码如下
  1. #include <stdio.h>
  2. main() {
  3.   printf("Hello, world!\\n");
  4. }
复制代码
6. 接下来的操作方法就和 lz 的描述一样了
  1. gcc -o hello hello.c
  2. ldid -S hello
  3. ./hello
复制代码
  这时候就终于看见控制台输出 “Hello, world!” 了 其他参考资料: Developing for the iphone using the open toolchain and SDK 2.0 headers
320主题127帖子1万人气

级别: WEIP技术组

【ipod4g 加入技术组】

帖子
127
经验
4389
精华
8
人气
15377
 楼主| 发表于 2010-5-23 09:29:44 |
引用第8楼nobdy于2010-05-22 23:04发表的  : 最后发现是因为用 apt-get install iphone-gcc 命令安装后,实际安装的是 iphone-gcc_4.2-20090304-1-9_iphoneos-arm.deb,而该安装包是有问题的,安装出来的 gcc 不能正常使用。
有问题, 是因为你没有安装
  1. wget http://apt.saurik.com/debs/libgcc_4.2-20080410-1-6_iphoneos-arm.deb
  2. dpkg -i libgcc_4.2-20080410-1-6_iphoneos-arm.deb
复制代码

Signature

欢迎加入iOS 开发资源共享,qun hao ma :615727308

http://bbs.feng.com/read-htm-tid-5259660.html 在 iPhone 或 iPad 安装 iphone gcc llvm-clang, THEOS 编译程序或插件

http://bbs.feng.com/read-htm-tid-2114166.html【ipod4g出品】 修改 iPhone 游戏作弊版教程

http://db.tt/nDnLMGd

bitcoin 1GxMy4EjCjbqkqAUCj1jH4hMtLGGaKzfVh

创新很重要,但不是一切。执行力才是最关键的
您需要登录后才可以回帖 登录 | 注册

本版积分规则