Object-C转C++代码命令

一、我们都知道OC语言是C语言的超集,是对C语言封装,使得拥有面向对象的特性。
二、有时候开发中需要查看OC代码的底层实现原理,只能通过查看底层C或C++代码,因此一些常用的转化命令需要掌握。
常用的OC->C++命令:
clang -rewrite-objc xxx(文件名,如main.m) -o xxx(目标文件名,如main.cpp)
例:

clang -rewrite-objc main.m -o main.cpp

改良:因为clang编译器在前端编译时,会根据具体的平台(windows、mac、linux),具体的架构(i386、armv7、arm64)进行编译,所以在转C++代码时可以增加参数,指定具体平台和架构,方便我们更精确查找阅读源码,减少无用信息。
命令:

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

问题:如果提示“iphoneos no fuond”类似的错误,可以尝试指定具体的sdk名字,

//查看所有可用sdk

xcodebuild -showsdks

iOS SDKs:
    iOS 13.7                        -sdk iphoneos13.7

iOS Simulator SDKs:
    Simulator - iOS 13.7            -sdk iphonesimulator13.7

macOS SDKs:
    DriverKit 19.0                  -sdk driverkit.macosx19.0
    macOS 10.15                     -sdk macosx10.15

tvOS SDKs:
    tvOS 13.4                       -sdk appletvos13.4

tvOS Simulator SDKs:
    Simulator - tvOS 13.4           -sdk appletvsimulator13.4

watchOS SDKs:
    watchOS 6.2                     -sdk watchos6.2

watchOS Simulator SDKs:
    Simulator - watchOS 6.2         -sdk watchsimulator6.2

因此,最终的命令:

xcrun -sdk iphoneos13.7 clang -arch arm64 -rewrite-objc main.m -o main-arm65.cpp

你可能感兴趣的:(Object-C转C++代码命令)