LLVM 2.0 can't build for iPhone simulator. GCC

2020-06-04 13:27发布

问题:

When I build my project (any project, really - I tried creating a new empty project with the same results), it builds fine with GCC 4.2 under either Xcode4 or Xcode 3.2.4.

If I build using LLVM 2.0 under Xcode4 or with LLVM 1.5 under Xcode3, I get compile-time build failures, but only when building for the Simulator.

The build errors that I get under LLVM are all in headers over which I have no control, such as UIView.h, UIDevice.h, UIApplication.h, UITextView.h and UIWebView.h in UIKit and CGPDFContext.h in CoreGraphics.

Here's an example error, in WebView.h:

@property(nonatomic) UIDataDetectorTypes dataDetectorTypes __OSX_AVAILABLE_STARTING(__MAC_NA, __IPHONE_3_0);   //<--- Unknown type 'UIDataDetectorTypes'

when UIDataDetectorTypes is indeed declared in UIDataDetectors.h which is included in that file.

sniff

回答1:

Might be a bug in Xcode 3.2.4 or the SDK configuration.

Try placing a line like one of these in your Build Settings Preprocessor Macros:

-D__IPHONE_OS_VERSION_MIN_REQUIRED=040100 

or

-D__IPHONE_OS_VERSION_MIN_REQUIRED=030103


回答2:

It sounds to me like your installation is borked.

When you installed Xcode4 did you make sure to install it to a completely separate directory to your existing Xcode install?

It could also have something to do with your include paths or something in that vein. I'm not too sure how to go about fixing that.

I would suggest backing up any custom templates etc. and running the uninstall script for both Xcode 3.x and 4, and then reinstalling to see if that fixes the issues.



回答3:

Does this issue persist with XCode 3.2.5?

Just curious since I haven't downloaded it yet.



回答4:

Without violating NDA (Xcode 4 is prerelease software), I recommend you read this thread in the Apple Developer Forums.