Die Datei wurde für das Archiv erstellt, das nicht mit der Architektur verknüpft ist (i386)
Bekam ich zu bauen statische Bibliothek. Ich will in meinem iPhone-und ipad-app. Wenn ich versuche, führen Sie den simulator bekomme ich die Verknüpfung errrors. Ich bin neu in der iOS-Entwicklung. bitte helfen;
ld: warning: ignoring file
/Benutzer/valuelabs/Desktop/DruvaProject/Bibliotheken/libnetUtils.eine, Datei
war das Archiv, das ist nicht die Architektur verknüpft
(i386) Undefined symbols for architecture i386:
"_OBJC_CLASS_$_netUtils", auf die dort verwiesen wird:
objc-class-ref in ViewController.o ld: symbol(s) not found for architecture i386 clang: error: linker command failed with exit code 1
(mit-v um zu sehen invocation)
Habe ich versucht, indem in den Architekturen i386. aber kein Glück
InformationsquelleAutor der Frage yarlg | 2012-05-29
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nach kämpfen mit diesem problem und folgenden allen akzeptierten Antworten der Aktualisierung von build-Einstellungen, löschen des linker-Suchpfad, etc.. ich fand schließlich eine Antwort, die für mich gearbeitet.
Bevor Sie Gebäude, stellen Sie sicher, Sie wählen die richtige Art (iPhone-Simulator) anstelle von iOS-Gerät. Dann neu erstellen. Ansonsten versucht man, sich eine Bibliothek gebaut für ein iOS-Gerät (arm-Prozessor) auf einem simulator auf Ihrem mac (i386). Sollte ja klar gewesen, aber war nicht.
Vor:
Nach:
Nun, Blick in die Produkte-Gruppe in der Navigator - > Rechtsklick auf die statische Bibliothek (.eine Datei) > Show in Finder, werden Sie feststellen, dass Ihr in einer Debug-iphonesimulator Ordner anstelle des Debug-iphoneos. Ich wollte nicht zahlen keine Aufmerksamkeit auf das Ordner-Namen ursprünglich, oder ich hätte gedacht früher.
Hoffe, das hilft.
InformationsquelleAutor der Antwort Cody A. Ray
Manchmal sind diese Arten von Fehlern, die Sie reizt!
Entfernen von Abgeleiteten Daten Funktioniert bei mir:
Schritte zum beheben
1) In XCODE > Windows > Projekte > Wählen Sie Ihr Projekt > Löschen von abgeleiteten Daten > Beenden Sie XCODE und Öffnen Sie es erneut, > Wenn Sie MAC-O-Linker builed fehlgeschlagen-Fehler > Refere diese link > Reinigen und wieder Aufzubauen.
InformationsquelleAutor der Antwort Gajendra K Chauhan
Ihre
libnetUtils.a
ist gebaut für eine andere Architektur als Ihr Ziel.Überprüfen Sie die libnetUtils build-Einstellungen. Die Architekturen, die es gebaut, und die Liste der unterstützten Computer-Architekturen muss es eine (schwache) Obermenge von Ihrem Ziel-Architektur. Die Komplexität ist hier, dass die resultierende Architektur ist verteilt über verschiedene Einstellungen: "Architekturen", "Build active-Architektur nur" und "Valid Architectures".
"Build active-Architektur nur" Einstellungen, machen dies besonders verwirrend. Angenommen, Sie sind Gebäude für den simulator. Wenn die "Build-active-Architektur nur" die Einstellung für den Debug auf NEIN gesetzt ist, werden alle Gebäude, die Architekturen, die "Architekturen" und "Valid architectures" (wahrscheinlich armv7, etc). Aber wenn libnetUtils hat, dass die Einstellung auf ja gesetzt (Debug: ja) es ist nur Gebäude für i386. Also, wenn Ihr linker versucht, link armv7 mit i386, schlägt fehl.
InformationsquelleAutor der Antwort achow
Wenn ich die Datei ignorieren Warnung - ich würde
lipo -info
auf ignoriert-Datei zu finden, es ist Architektur, wie untenDass drucken würde entweder i386, armv6, armv7, armv7s, x86_64 etc. Im Allgemeinen, dass die Architektur hat, um mit Ihren Ziel-build-Plattform. E. g.
Je nach Fehlanpassung, entweder Sie haben zum Wiederaufbau Ihrer Bibliothek für Ihre Zielplattform oder ändern Sie Ihre Ziel-Plattform.
Hinweis: Für fat binaries
lipo -info
druckt eine Kombination der oben genannten Architekturen.InformationsquelleAutor der Antwort Kiran
Ich weiß wirklich nicht, ob mein Rat richtig ist, aber versuchen Sie dies:
Beurteilen Sie mich nicht, wenn ich bin captain obvious 🙂
InformationsquelleAutor der Antwort Alexander Bekert
Es bedeutet, die Bibliothek, die Sie versuchen, zu verwenden war nicht universell, kompiliert für den iOS-simulator (i386-Symbole für den Mac). Es läuft auf einem Gerät funktionieren sollte aber.
InformationsquelleAutor der Antwort CodaFi
Hatte das gleiche problem, und habe versucht, diverse Lösungen von der Seite, ohne Erfolg.
Ich hatte noch eine Nachricht, die sagen mir meine Bibliothek nicht bauen für arm64.
Endlich wie ich es behoben :
Scheint manchmal die build-Einstellungen angezeigt, die von XCode ist unvollständig und entspricht nicht exakt der Projekt-Datei.
InformationsquelleAutor der Antwort Eino Gourdin
Dieses Problem wird nicht auftreten, wenn wir führen Sie die Anwendung auf dem Gerät. Sie können überprüfen, indem Sie den code auf dem iOS-Gerät.
InformationsquelleAutor der Antwort Chandni - Systematix
Hatte ich eine Architektur der armv7s als gut. Ich löschte es und stellte sicher, dass die armv6-und armv7 waren nur zwei aufgeführt. Es funktioniert jetzt
InformationsquelleAutor der Antwort flyers