Clang(LLVM) 用框架编译

use*_*004 5 objective-c llvm llvm-clang ios

我在用:

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

在 OS X 终端中。我也试过 UIKit.framework,但我得到

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

既。

有什么建议?

谢谢

tka*_*kic 5

这个问题已经在苹果开发者论坛中得到了回答,你可以在这里找到完整的讨论。在标记为问题解决方案的答案中,他们说:

1 - 首先检查您的 PATH 变量:

$ echo $PATH
Run Code Online (Sandbox Code Playgroud)

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

$ PATH=$PATH:/System/Library/Frameworks
Run Code Online (Sandbox Code Playgroud)

3 - 现在我们准备好听 Kochun 先生的咒语了:

$ clang -fobjc-arc -framework Foundation main.m prog1
Run Code Online (Sandbox Code Playgroud)


Gre*_*ker 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它不会自动执行。