如何通过iPad云编译C语言,在iOS(iphone、ipad)上编辑、编译和运行c/c++(包括iPhone6和iOS8)...
因为GCC在iOS上的种种问题,所以放弃了GCC采用Clang编译C/C++。
一、添加BigBoss源
一般cydia默认都带有BigBoss源,当然如果你删除了请添加回来,源地址:http://apt.thebigboss.org/repofiles/cydia/
二、安装LLVM+Clang、LD64和MTerminal
直接在cydia中搜索安装即可,注意LLVM+Clang文件会比较大。
三、导入头文件和链接库
iOS8的话可以点击这里下载,其他iOS版本没测试,理论上问题不太大。
将下载下来的压缩包放到iOS中的/var/root目录下(实际上可以随便放,不过后面还要用到这个路径),用iOS中的iFile(如果没有请到cydia安装)对压缩包解压:
解压最后出现:
返回值:0
则表示解压成功,在/var/root目录下会出现usr文件夹。
这时点击usr文件夹右边的感叹号图标,将访问权限全部修改为“读取,写入,执行”:
如果你有一台安装有XCode的Mac,可以到这里找到需要的文件夹:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.0.sdk/
最后的SDK选择自己需要的版本,压缩里面的usr文件。
四、设置Clang参数
因为Clang不会自带头文件和链接库,所以这里需要用参数指定,为了减小工作量直接写一个shell脚本。
在电脑上新建一个文本文档(当然也可以直接在iFile中新建),内容如下:
保存后去掉文件的.txt后缀,命名为dpp,将文件放到iOS中的/usr/bin文件夹下,点击右边的感叹号图标,修改访问权限为“读取,写入,执行”:
五、编译并执行C++文件
这里可以在电脑上创建一个简单的.cpp文件(我的文件名字为test.cpp):
将文件放到/var/mobile文件夹下
打开MTerminal,输入:
dpp test.cpp -o test
如果没出现错误就是编译成功,接下来运行编译后的文件:
./test
就会得到:
Hello World!
这样即完成了所有步骤。
下面是几点要说明的:我在iOS6、iOS7、iOS8上均测试过能正常使用,一般不可能是LLVM+Clang和LD64的问题;
如果头文件和链接库文件(即usr文件夹)找不到对应的,可以参考这里去寻找;
注意千万不要在Windows下解压usr.zip后再传至iOS,因为NTFS格式磁盘会破快链接文件的文件格式;
一定要注意复制进iOS的文件和解压的文件的权限问题,这里直接全部设为“读取,写入,执行”避免权限问题;
如果前面的usr路径和我的路径不同,注意要同时修改shell脚本中的参数;
我的shell文件名为dpp,这里可以自由修改,在Terminal中执行时对应就行;
这个shell是用来编译C++的,若要编译C,只需要将其中的clang++更改为clang(可能后面的头文件参数路径也需要更改,我没有测试);
dpp test.cpp -o test中dpp是我自定义的指定编译和头文件链接文件的命令,test.cpp为需要编译的文件的文件名,-o test为指定编译后文件的文件名,这里我指定为test;
./test即为执行test文件,这里的./为当前目录,必不可少,不同于Windows可以直接test。
如何通过iPad云编译C语言,在iOS(iphone、ipad)上编辑、编译和运行c/c++(包括iPhone6和iOS8)...相关推荐
- iOS(iPhone,iPad))开发(Obje…
原文地址:iOS(iPhone,iPad))开发(Objective-C)开发库常用库索引 作者:子木潇雨 http://www.code4app.com 这网站不错,收集各种 iOS App 开发可 ...
- c语言程序可以单独编译,c语言中的函数可不可以单独进行编译?_后端开发
在C语言中,要求参加运算的数必须是整数的运算符是什么_后端开发 在C语言中要求参加运算的数必须是整数的运算符是"%":"%"符号在c语言中有两种释义,一是求余符 ...
- iOS(iPhone,iPad))开发(Objective-C)开发库常用库索引
http://www.code4app.com 这网站不错,收集各种 iOS App 开发可以用到的代码示例 http://www.cocoacontrols.com/ 英文版本的lib收集 ht ...
- 使用HTML(Web)开发iOS/iPhone/iPad应用
许多人想开发自己的iOS App吧?iOS App有几种开发的方法.一种是"正规"的方法,就是Xcode+ObjC.但是这样既得学习ObjC语言,又得搭建Xcode开发环境.都弄完 ...
- debian编译php mysql5.6_在Debian/Ubuntu上免编译安装PHP7.2~5.6
本文介绍在 Debian/Ubuntu 系统上免编译安装 PHP7.2~5.6,教程适用系统为:Debian 9.Deiban 8.Ubuntu 18.04 LTS.Ubuntu 16.04 LTS. ...
- arm编译安装php启动,在 ARM 设备上手工编译 LNMP 编译到心态爆炸
昨晚把我的华为畅享 8 Root 了,装了个 Linux Deploy,跑 CentOS 7 因为 CPU 比较辣鸡,就打算拿来建个小站玩玩 一开始打算用 OneinStack,结果发现不支持 ARM ...
- ipad更新9.0系统更新服务器,iPhone/iPad升级iOS9出现卡顿的原因及解决办法
iOS 9正式版目前已经正式推送了,不过在一部分热火朝天升级的时候,有一部分人还在处在观望的状态.现在有很多升级之后的用户反馈说自己的iPhone或者iPad等苹果设备在升级到iOS 9系统会出现暂时 ...
- ios(iphone/ipad)开发每日一练【2011-11-14】
请教一个关于真机测试的问题 疼!向各位老大求解cocos2d 处理动作播放的问题 如何实现新版本的升级提醒啊 UIImagePickerController截图时图片不再截图框中间 self有什么技巧 ...
- ipad原始邮箱服务器端口,如何在iPhone/iPad/iPod touch邮件应用程序中创建帐户(默认POP3)?...
下面向大家介绍如何使用iPhone/iPad/iPod touch上的邮件应用程序Mail创建 yeah 邮箱帐户,这里以iPod touch为例(iPhone/iPad中除了界面略有区别外,操作基本 ...
- iPad能不能装c语言的编译器,IPhone/IPad/IPod安装GCC的方法
GCC是一种很常用的C语言的编译器,可以在各种版本的Windows,Linux,Mac上运行,当然IPhone的IOS系统也不例外~下面就教大家如何在IPhone上面安装GCC,帮助程序猿们实现随时随 ...
最新文章
- 【性能优化】小伙伴问我性能指标监控怎么做,这次我安排上了!!
- [转载]用数据说话 Pytorch详解NLLLoss和CrossEntropyLoss
- excel导入数据时报错,显示Extracted SQL state class ‘22‘ from value ‘22001‘
- 这里有一份面筋请查收(六)
- 解决虚拟机 正在决定eht0 的ip信息失败 无链接-- 添加虚拟网卡
- mysql 批量删除之大坑
- JavaScript实现继承的几种方式
- linux文件句柄满了 现象_Linux 离奇磁盘爆满,如何解决? | 原力计划
- 推流中转服务器,视频推流服务器EasyRTMPLive拉转推过程当中遇到复杂目的地址解决方法?...
- 【bzoj1194】 HNOI2006—潘多拉的盒子
- js基础-9-正则表达式
- 嗅探工具java_权宜之计 让迅雷5支持傲游2嗅探器来下载视频
- 【Java 多线程 8】同步容器与并发容器
- 中国多端柔性直流输电行业发展分析及投资可行性调研报告2022-2028年版
- “汉堡+奶昔”怎么就成了精致生活的热门标签?
- ubuntu显示时间不正确的问题解决
- 如何搜索自己博客内的文章
- python日本 老龄化分析_即将读研,求问前辈有什么研究生安利的软件 APP 或者阅读文献用的等一系列提高效率的东西吗!?...
- 微信小程序获取并修改app.js中的值
- Excel表格中数据比对和查找的几种技巧
热门文章
- 【优化算法】差分松鼠搜索优化算法(DSSA)【含Matlab源码 1330期】
- 【动力学】基于matlab GUI汽车动力学分析系统【含Matlab源码 1050期】
- 【脑电信号】基于matlab小波变换睡眠脑电信号监测【含Matlab源码 595期】
- subsequence java_Java StringBuilder subSequence()方法与示例
- ffmpeg drawtext 背景_8款电视背景墙:电视背景墙这样装,不仅省钱还作用多!效果大不一样!...
- pong_计算机视觉与终极Pong AI
- php中合并数组保留键值,如何使用php合并数组并保留键值的方法
- h5 右下角浮动按钮_Flutter 浮动按钮-FloatingActionButton的使用
- html带表单和div的素材,用DIV+CSSwe标准布局网页表单的一个例子
- 关于TIME_WAIT重用与RFC1337