Xcode / clang: Warum geben einige, nicht alle meiner Header "Warnung: keine Regel zur Verarbeitung der Datei xxx für Architektur arm7"

7

Ich baue eine iOS 5-App mit ARC, die mit Xcode 4.2 / Lion klingelt. Eine gute Übung für mich ist es, so viele Warnungen wie möglich loszuwerden, aber ich bin dabei verloren. Die App hat ziemlich viele Klassen, aber eine begrenzte Anzahl ihrer Header-Dateien (8 oder 9) gibt Linker-Warnungen wie folgt:

%Vor%

Ich sehe keine signifikanten Gemeinsamkeiten in diesen Headern: ein Paar ist OSS-Code von Drittanbietern; der Rest sind alle meine eigenen. Eine ist eine plain-C-Header-Datei (ohne entsprechende .c), die nur Konstanten enthält, #defines und enums; Ein paar sind UIView und UIViewController Unterklassen, die mit Xcode's Templates erstellt wurden; der Rest sind gewöhnliche Obj-C-Klassen, von denen einige von NSObject erben und andere nicht. Alle (meiner Klassen) wurden zu verschiedenen Zeiten im Projekt neu erstellt. Sowohl ältere als auch neuere Klassen geben keine Warnungen ab.

Mein Projekt verwendet eine Mischung aus C ++, Objective-C ++ und Objective C-Klassen. Die warngenerierenden Klassen sind hauptsächlich Objective C (ihre Implementierungen sind in .m-Dateien), aber die beiden Klassen von Drittanbietern sind in Objective C ++ (.mm) implementiert.

Ansonsten funktioniert das Projekt gut und läuft im Simulator und auf iDevices.

Zu meiner Schande sind mir die Seiten mit den Projekteinstellungen in Xcode nicht besonders vertraut. Ich erwarte, dass die Lösung irgendwo darin enthalten ist, aber ich bin mir nicht sicher, wo ich anfangen soll, ohne etwas zu kaputt zu machen.

    
Tim Kemp 09.01.2012, 14:57
quelle

2 Antworten

20

Das bedeutet, dass Sie versehentlich Headerdateien hinzugefügt haben, die kompiliert werden sollen. Sie müssen in Ihre Projekte Build Phases gehen und alle Header-Dateien aus dem Abschnitt Compile Sources entfernen.

    
Joe 09.01.2012, 15:01
quelle
2

Überprüfen Sie Ihre Architektur (Projekt und Ziel): Standard (armv7) - $ (ARCHS_STANDARD_32_BIT) und gehen Sie zu Build Phaser (Compile Source) und Wange sollte dort keine .h-Datei hinzugefügt werden.

    
AAV 09.01.2012 15:07
quelle