在 iOS 上使用 gcc 编译 C/C++ 文件
http://bbs.weiphone.com/read-htm-tid-1663675.html
Linus Yang原创教程 t.sina.com.cn/linusyang 论坛上ipod4g的文章 http://bbs.weiphone.com/read-htm-tid-758205.html http://bbs.weiphone.com/read-htm-tid-803479.html 详细介绍如何在iOS上搭建平台,进行开发,操作步骤较多,不易掌握。 而本文中,我将部分关键的头文件和动态链接库事先打包好,简化安装步骤,并且最终也不是要进行完整的iPhone开发,仅仅能保证编译、运行、调试基本的C/C++程序,可以进行简单的命令行编程,较为实用。 1、下载: 包含gcc和gdb完整安装包的下载地址:(已包含头文件) http://u.115.com/file/f3cb3f7778 单独下载打包好的头文件。(上面一个要是下载了,就不用下载这个了。) 1.1版:(提取自iOS SDK 4.2) headfile_1.1_iphoneos-arm.deb (2298 K) 下载次数:184 1.0版:(提取自iPhone OS SDK 3.0) headfile_1.0_iphoneos-arm.deb (2435 K) 下载次数:52 注:如果设备还在运行iPhone OS 3.0,而且用1.1版头文件包编译不通过的,就试试这个1.0版的头文件包: 在Cydia中找到"Include head files",卸载掉,再安装1.0版。 2、安装: 解压后,将文件传到设备上,安装文件夹内所有deb包即可。 具体可以用以下三种方法:
引用
方法一:(推荐)
预先安装好OpenSSH,利用WinSCP(Windows)或Terminal(Unix)以root身份登录你的设备,进入目录,使用
复制代码
dpkg -i *.deb
命令安装所有安装包。
方法二:
预先安装好MobileTerminal,利用 su root 命令改为root用户,再进入目录,使用
复制代码
dpkg -i *.deb
命令安装所有安装包。
注:如使用iOS4和iPad,请不要安装Cydia源自带的Terminal,可以安装这个:
MobileTerminal_520-1
方法三:
使用iFile,进入目录,安装所有的包。(可以忽略返回值不是0的问题,依赖包已经全部包含进来了。)
至此,gcc和gdb已经安装完成,可以直接开始编译了! 3、编译运行: 第一步,可以使用任何文本编辑器,比如用GoodReader/QuickOffice/iFile甚至Cydia中提供的Vim编写源代码,扩展名可以为.c或.cpp,然后再放到指定目录编译,比如/var/mobile。 第二步,使用OpenSSH或MobileTerminal登录设备(无需root帐户,mobile用户即可),输入如下命令: 先转到工作目录:
复制代码
cd /var/mobile
对于c语言:
复制代码
gcc hello.c -o hello./hello
对于c++:
复制代码
g++ hellop.cpp -o hellop./hellop
这时候就可以看到运行结果了。 补充: 若此时仍无法运行,请给程序数字签名后再运行,比如:
复制代码
gcc hello.c -o helloldid -S hello./hello
因为现在大多数越狱都给内核打了补丁,就不需要ldid数字签名这一步了,所以4.1,4.2.1越狱后的设备都可以省略这一步。 4、有关调试: 编译的时候加入-g参数,比如
复制代码
gcc -g hello.c -o hello
即可用gdb调试,具体调试方法,可以参阅相关gdb的资料。这里我就不详述了。 已在iOS 4.1(limera1n)/iOS 4.2.1(Pwnage4.2自制固件)/ARMv7的环境下测试通过。 转载请注明出处,欢迎各位跟帖回复讨论!