6

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

user1710004
  • 209
  • 1
  • 4
  • 12

2 Answers2

5

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
tkanzakic
  • 5,499
  • 16
  • 34
  • 41
  • I did find that too, but it didn't help me. What shall I do after specifying the 'PATH'? 'clang -fobjc-arc -framework Foundation -framework UIKit ...' Does give me the same error. – user1710004 May 05 '13 at 19:04
  • 1
    have you tried making `export $PATH` after set the new value? – tkanzakic May 05 '13 at 19:06
  • moreover, in the new version of the Mac OS the right path is `/Library/Frameworks` – tkanzakic May 05 '13 at 19:07
  • I have it installed on /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk/System/Library/Frameworks/ – tkanzakic May 05 '13 at 19:10
  • For me it's /System/Library/Frameworks also tried 'export $PATH'. Didn't work for me. – user1710004 May 05 '13 at 19:14
  • So I'm now trying 'clang -fobjc-arc -framework UIKit -o o main.m' still getting the same error. Also tried with Foundation and UIKit. – user1710004 May 05 '13 at 19:35
  • -iframework - Add directory to SYSTEM framework search path – Alex Koz. Mar 04 '17 at 18:11
4

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.

Greg Parker
  • 7,972
  • 2
  • 24
  • 21