2013-04-26 4 views
5

Ich entwickelte eine sehr einfache Anwendung, mit openCV für IOS. Es hat funktioniert, bis ich beschloss, den Code in einem anderen Projekt zu verwenden. Ich erhalte diese ARMv7 Fehler und ich kann nicht sehen, wo das Problem ist (bitte siehe letztes Bild)"Undefined symbols for architecture armv7" beim Importieren von STATIC LIBRARY, die OPENCV-Funktionen enthält

ich eine statische Lib-Datei meines Arbeits Code erstellt, die folgende Architektur Info hat: lib architecture

, als ich es in eine * .a-Datei kompilierte und hinzugefügt, um den dyOpenCv.a und ein DyOpenCV.h Dateien auf mein Haupt-Projekt, das die folgende Architektur Informationen hat: Project architecture

Aber wenn ich versuche, Verwenden Sie die Methode innerhalb der Headerdatei (DyOpenCV.h), die folgenden Fehler angezeigt: armv7 error

Irgendwelche Ideen, was kann es sein?

+0

Sie alle verbinden Probleme. Stellen Sie sicher, dass Sie Ihr Projekt mit den Bibliotheken verknüpfen, die diese Symbole implementieren. – karlphillip

Antwort

10

Es zwei zu verknüpfen Bibliotheken Fragen waren:

  1. Erstens, obwohl mein Teilprojekt zu den opencv2.framework korrekt hinzugefügt und verbunden hatte, hatte ich auch diesen Rahmen hinzufügen meiner Hauptprojekt. Auf diese Weise habe ich die cv :: * Verknüpfung Probleme loswerden;

  2. Das zweite Problem war mit meiner Crossing-Compiler-Objective-C++ - Konfiguration verwandt. Nachdem ich libC++ als meine Standardbibliothek verwendet hatte, fügte ich -lC++ zu meinem Other Linker Flags hinzu. Falls Sie libstdC++ als Standardbibliothek verwenden, sollten Sie -lstdC++ stattdessen hinzufügen.

Danach hat es perfekt funktioniert. Zwar gibt es einige Speicherlecks = kümmern)

Cheers,

2

Ich denke, weil Ihr Projekt nicht mit der C++ Laufzeit verbindet.

Versuchen Sie, libC++ .dylib zu den verknüpften Bibliotheken hinzuzufügen.

Verwandte Themen