user1710004
user1710004

Reputation: 209

Clang(LLVM) compile with frameworks

I am using:

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

In OS X terminal. I also tried UIKit.framework, but I am getting

Fatal Error: 'UIKit/UIKit.h' not found

with both.

Any suggestions?

Thanks

Upvotes: 6

Views: 16157

Answers (2)

Greg Parker
Greg Parker

Reputation: 8012

Compiling for iOS without using Xcode is not easy. In your case, you're trying to use an iOS framework but you're using neither the iOS toolchain's compiler nor the iOS SDK.

If you look at the compile transcript for an Xcode project you'll see some of the flags that are necessary. Things you'll need include:

  • xcrun -sdk iphoneos clang to choose the correct compiler and SDK
  • -arch armv7s to choose the correct CPU architecture
  • -mios-version-min=6.1 to set a minimum deployment target

Some older versions of Xcode also require -isysroot=/path/to/iPhoneOS6.1.sdk to choose the correct SDK because xcrun did not do it automatically.

Upvotes: 4

tkanzakic
tkanzakic

Reputation: 5499

This has been already answered in the Apple developer forum, you can find the whole discussion in here. In the answer marked as the solution to the question they say:

1 - check your PATH variable first:

$ echo $PATH

2 - assuming /System/Library/Frameworks is not included in PATH, add it:

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

3 -now we're ready for Mr. Kochun's incantation:

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

Upvotes: 5

Related Questions