CLANG geben Fehler über defekte Header-Datei beschweren UILocalizedIndexedCollation.h
Frage
Ich lief in diesen Fehler, wenn mein Code mit CLANG Aufbau:
In file included from /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.0.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIKit.h:31, from /Users/waspfish/Documents/NanaimoStudio/Projects/iPhoneMonk/Projects/IdeaOrganizer/IdeaOrganizer_Prefix.pch:13, from :1: /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.0.sdk/System/Library/Frameworks/UIKit.framework/Headers/UILocalizedIndexedCollation.h:13: error: syntax error before ‘AT_NAME’ token /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.0.sdk/System/Library/Frameworks/UIKit.framework/Headers/UILocalizedIndexedCollation.h:21: error: syntax error before ‘}’ token /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator3.0.sdk/System/Library/Frameworks/UIKit.framework/Headers/UILocalizedIndexedCollation.h:23: fatal error: method definition not in @implementation context compilation terminated. {standard input}:32:FATAL:.abort detected. Assembly stopping.
beenden ich die UILocalizedIndexedCollation.h von UIKit.h auszuschließen, die nach oben und alles gebaut in Ordnung. Jede Idee, was das Problem verursacht haben könnte? Ich kann mir nicht vorstellen, Apple eine defekte Header-Datei ist die Schifffahrt.
Lösung
Das Problem aus SDK kommt 3.0, die jetzt gcc 4.2 verwenden, aber scan-build noch verwenden / usr / bin / gcc. So müssen Sie Scan-build sagen, anstatt zu verwenden /usr/bin/gcc-4.2.
scan-build --use-cc=/usr/bin/gcc-4.2 xcodebuild -configuration Debug
Et voila!
Andere Tipps
Apple-Ingenieur hatte bestätigt, dass sie einen Fehler in UIKit Rahmen hatten:
Wir haben eine einfache Abhilfe für diesen UIKit Fehler. In UILocalizedIndexedCollation.h dies ändern:
UIKIT_EXTERN @interface UILocalizedIndexedCollation : NSObject
to
UIKIT_EXTERN_CLASS @interface UILocalizedIndexedCollation : NSObject
Denis2342
Normalerweise, wenn ich so etwas wie dies sehe ich den Build reinigen und neu zu starten Xcode, dann Dinge waren in Ordnung. Mit GCC 4.2 manchmal eine schlechte pch könnte Schluckauf wie diese cuase, aber Klappern verwendet eine totoally verschiedene pch Implementierung. Möglicherweise möchten t die Build dir vollständig löschen, während Xcode nicht ausgeführt wird.
Technisch Klirren ist nicht für die iPhone-Entwicklung unterstützt, aber ich benutze es für Simulator kompiliert, und ich sehe nicht die Kompilierung Fehler, die Sie sehen, so (zumindest für mich) es funktioniert. Eine Sache klebt in meinem Kopf heraus finden Sie UIKit.h zu bearbeiten. Ich verstehe, was du das getan hast, aber Header System Zwicken ist großer No-No. Gibt es eine Chance, dass aus anderen Gründen getan haben, denn wenn man nicht auf Lager Header gibt eine beliebige Anzahl von Gründen ausgeführt werden, dies geschehen könnte.