clang编译错误: fatal error: ‘UIKit/UIKit.h‘ file not found

错误

这是一个使用clang编译器Objective-C代码编译成C语言代码, 并生成在一个.cpp的 C++文件中。具体的命令行是:

$ cd 当前文件夹
$ clang -rewrite-objc SomeFile.m

这是, 可能会遇到一个错误就是如下:
这里写图片描述

fatal error: 'UIKit/UIKit.h' file not found
#import <UIKit/UIKit.h>
        ^~~~~~~~~~~~~~~
1 error generated.

解决

将之前执行的命令替换成为:

$ clang -x objective-c -rewrite-objc -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk SomeFile.m

然后, 你会发现, 你的文件夹中多了一个.cpp的文件, 证明解决了这个问题。

拓展

如果你觉得这个命令很繁琐不易记, 你可以采用 alias来起一个别名来代替这个命令。
1.打开终端, 键入命令 vim ~/.bash_profile
2.在vim界面输入i进入编辑编辑状态并且键入:

alias rewriteoc=‘clang -x objective-c -rewrite-objc -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk’

3.键入完毕后, esc退出编辑状态, 再键入:wq退出vim并保存
4.键入命令source ~/.bash_profile

相关问题

如果添加了 __weak__strong 后可能会有以下问题:

error: cannot create
      __weak reference because the current deployment target does not support weak references
    __attribute__((objc_ownership(weak))) NSObject *weakObj = obj;
                   ^

解决方案:

xcrun -sdk iphoneos clang -arch arm64 -rewrite-objc -fobjc-arc -fobjc-runtime=ios-8.0.0 xxx.m -o xxx.cpp

参考资料:
iOS: XCode 4.5: xcodebuild error - fatal error: ‘UIKit/UIKit.h’ file not found

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值