Clang浅尝辄止
Clang是一个C语言、C++、Objective-C、Objective-C++语言的轻量级编译器。
我们可以使用clang命令来重写OC的.m文件(重写之后以C++文件的形式展现在相应的文件夹里头.
- 首先.我们使用cd命令或者是直接拖动的方式把终端目录改到想要操作的.m文件的目录.(比如,下面我们要重写Person.m)
- 然后我们在终端输入
clang -rewrite-objc Person.m
. - 然后去之前的目录查看.工程里面多了一个叫
Person.cpp
的C++文件. - 双击该cpp文件就能看到对应.m类的一些实现了(Xcode支持C++).
上面的clang -rewrite-objc XXX.m
只是clang的一个小的使用方式.
对于iOS开发.我们知道区分为真机以及simulate(模拟器).两者架构并不相同.如果我们到处成C++文件,想导出指定的真机或者是模拟器的C++文件应该怎么弄呢.那就涉及到了xcrun
命令了.
1. 指定iphoneos(真机): xcrun -sdk iphoneos clang -rewrite-objc Person.m
2. 指定为simulator(模拟器): xcrun -sdk iphonesimulator clang -rewrite-objc Person.m
3. 我们也知道iOS是有许多版本号的.那么,我们想导出相应的版本的C++文件应该怎么弄呢:
- 在终端中,使用
xcodebuild -showsdks
命令来搜索机器上有的sdk.![]()
- 比如我们要导出10.13版本的:
xcrun -sdk iphonesimulator10.3 clang -rewrite-objc Person.m
- 链接错误,一般是引用了三方的库导致的:
- 单个路径:使用
xcrun -sdk iphonesimulator10.3 clang -rewrite-objc -F路径 Person.m
- 多个路径:使用
-I头文件路径1 -I头文件路径2 …… -I头文件路径n
去分隔多个路径.