iOS将oc的.m文件编译成C++的.cpp文件

iOS将oc的.m文件编译成C++的.cpp文件,第1张

因为在学习oc语言block的底层原理,所以需要将oc的.m转成c++的.cpp格式文件,这样可以方便我们窥探一些本质的东西

比如要将我的工程BlockTest的main.m转换成.cpp, *** 作如下

1:打开终端 cd 自己的工程文件

2:终端输入:clang -x objective-c -rewrite-objc -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk xxx.m,其中xxx.m替换成自己需要转换的文件,然后敲回车

3:回到自己的工程文件目录下查看,会多了一个.cpp文件

4:将文件添加到工程目录

5:从编译器中移除.cpp,保证项目正常运行

本iOSC/iOSC++适用于iPhone 5S、iPad 4。

经测试,本软件可以编译 复杂命令行程序、运用了各种Framework的IPA程序、cmake、SDL2库、运用了SDL2的程序、同时运用SDL2和UIKit的程序、纯算法程序。

1、请先安装必须软件包,从这个汇总贴子里下载:http://bbs.weiphone.com/read-htm-tid-5259660.html

如果您觉得不放心,这些软件包可以在code.google.com各自的项目里下载

(注:安装方法:)

(先在Cydia中安装Debian Packager)

(然后在终端模拟器或SSH中进入DEB文件夹以root权限运行dpkg -i *)

2、然后请用Mac OS安装Xcode,提取/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/到您的iPhone5s或者iPad4上。

3、在Cydia中安装class dump和classdump-dyld,这个工具可以在你需要Private Framework的头文件时,为你反编译出可用的头文件。(Private Framework本身是不提供头文件的)

4、最后把您需要的可执行文件复制到/usr/bin目录并设置可执行权限。

在iosc文件夹和iosc++文件夹中,各个版本目录下文件说明:

main.cpp ——此版本源代码

a.out,iosc,iosc++ ——此版本二进制可执行文件

config.txt ——此版本最佳配置文件。

注:配置文件一般自动生成。如果

希望iosc/iosc++尽量不提问,可以

把这个config.txt复制

到/var/mobile/.ioscpp/config.txt

5、iosc、iosc++在V1.3之后有一次渺小而重要的更新,运用此更新,用户第一次有把握在iPhone5S、iPad4设备上从复杂源代码搭建实用工具,例如cmake、SDL2。此更新保证开发者在iOS 7上可以编译任何C/C++代码。因此,自V1.3以后的代码暂不开源。

6、利用theos可以从源代码编译iOS IPA程序。貌似不支持Storyboard。

!注意!如果需要安装产生的IPA,需要AppSync补丁,因为没签名……

(编译方法:)

(从原帖子下载整个压缩包,仅提取其中的theos文件夹)

(从本目录安装好iosc/iosc++)

(把本目录中的ipa.nic.zip等nic.zip文件拷贝到theos/templates/iphone/)

(利用Nic建立项目,进入项目文件夹用make编译)

1.定位到文件当前目录

2.命令行工具转换: clang -rewrite-objc main.m -o mian.cpp

2.1.转换为指定平台、架构的C文件:

xcrun -sdk iphoneos clang -arch arm64 -rewrite-objc main.m -o main-arm64.cpp


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11654695.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存