2017-11-27 2 views
0

Ich stoße auf ein Problem, dass ich versuche mein Bestes, um es zu lösen, aber ich verbringe so viel Zeit es funktioniert nicht für mich.Nicht definierte Symbole für Architektur arm64 mit "_cblas_sgemm", referenziert von:

Ich habe keine Idee, es zu beheben. Mein Projekt bauen auf Xcode 9.1, libnama.a Bibliothek ist in einem Drittanbieter für mein Projekt, genannt Faceunity, .a Bibliothek hinzugefügt mein Projekt, Other Linker Flags i $ hinzugefügt haben (geerbt)

Architekturen Set armv7 armv7s arm64 x86_64, benutzt die Methoden einiger anderer Leute es immer nicht ok !!!! Ich hoffe, dass, wenn jemand eine Idee haben, vielleicht zu beheben, bitte sagen Sie mir, danke!

Fehler:

Undefined symbols for architecture arm64: "_cblas_sgemm", referenced from: _cnn_run in libnama.a(cnn-arm64.o) ld: symbol(s) not found for architecture arm64 clang: error: linker command failed with exit code 1 (use -v to see invocation)

Weitere Informationen:

enter image description here

Antwort

0

Dies ist ein typischer Fehler, wenn wir Bibliotheken von Drittanbietern in unseren Anwendungen integrieren. Es wird gesagt, dass die erforderliche Bibliothek nicht für arm64 Architektur gebaut wurde.

Der Linker konnte die Symbole für arm64 in der angegebenen statischen Bibliothek nicht finden. Um zu überprüfen, die unterstützten Architekturen für statische Bibliothek verwenden Lipo oder Datei

lipo -info libGoogleAnalytics.a .
Architectures in the fat file:libGoogleAnalytics.a are: armv7 i386 x86_64 arm64

0

Es liegt daran, dass einige Drittanbieter-Bibliothek Unterstützung Simulatoren beinhaltet. Aber beim Erstellen der Anwendung müssen Sie die Unterstützung für die Architektur-Unterstützung für Simulatoren ausschließen

+0

Aber ich immer nicht wie es zu beheben! Können Sie mir sagen, wie Sie mein Problem mit Ihrem Vorschlag lösen können? Bitte sprechen Sie Beispiel, ich möchte es versuchen. Also danke – nickpan

+0

Was versuchst du zu sagen, ich bin nicht in der Lage zu verstehen. Immer noch wie bei Ihrem Problem, wenn Sie dieses Skript verwenden, haben Sie dieses Problem nicht. Gehe zur Build-Phase, es wird ein Plus-Button sein klick drauf und wähle "new run script phase" und im script-Abschnitt benutze einfach mein Skript –

+0

Ich habe deine Methoden benutzt, um Skript in Target -> Build Phases -> Run Script hinzuzufügen, direkt Kopiere deinen Code in textBox. Aber es funktioniert nicht für mich, ob ich etwas vermisse? wie beispielsweise den Austausch von $ {WRAPPER_NAME} oder $ FRAMEWORK/Info.plist – nickpan

Verwandte Themen