使用Clang(LLVM)编译框架的方法

6

我正在使用:

clang -ObjC -framework UIKit -o /var/compiled/c /Documents/Source/main.m

在OS X终端上。我也尝试了UIKit.framework,但是两种方法都出现了

致命错误:找不到'UIKit/UIKit.h'

您有什么建议吗?

谢谢


你能具体一点吗? - icodebuster
你是怎么得到这个错误的? - icodebuster
在 OS X 终端中使用 'clang -ObjC -framework UIKit -o /var/compiled/c /Documents/Source/main.m' 时 - user1710004
2个回答

5
这个问题已经在苹果开发者论坛上得到了解答,你可以在这里找到整个讨论过程。在被标记为问题解决方案的回答中,他们说:
1- 首先检查你的PATH变量:
$ echo $PATH

2 - 假设/System/Library/Frameworks没有包含在PATH中,请添加它:

$ PATH=$PATH:/System/Library/Frameworks

3-现在我们准备好了,可以进行Kochun先生的咒语:

$ clang -fobjc-arc -framework Foundation main.m prog1

我也发现了这个问题,但它并没有帮助到我。在指定“PATH”之后,我该怎么做?使用“clang -fobjc-arc -framework Foundation -framework UIKit…”仍然会出现相同的错误。 - user1710004
1
你尝试过在设置新值后执行 export $PATH 吗? - tkanzakic
此外,在Mac OS的新版本中,正确的路径为/Library/Frameworks - tkanzakic
对我来说,它是/System/Library/Frameworks,我还尝试了'export $PATH'。但对我没用。 - user1710004
所以我现在正在尝试使用'clang -fobjc-arc -framework UIKit -o o main.m',但仍然得到相同的错误。也尝试过Foundation和UIKit。 - user1710004
显示剩余2条评论

4

在不使用Xcode的情况下为iOS编译并不容易。在您的情况下,您正在尝试使用iOS框架,但既没有使用iOS工具链的编译器也没有使用iOS SDK。

如果您查看Xcode项目的编译记录,您将看到一些必要的标志。您需要的内容包括:

  • xcrun -sdk iphoneos clang 选择正确的编译器和SDK
  • -arch armv7s 选择正确的CPU架构
  • -mios-version-min=6.1 设置最低部署目标

一些较旧版本的Xcode还需要 -isysroot=/path/to/iPhoneOS6.1.sdk 来选择正确的SDK,因为 xcrun 没有自动执行此操作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接