Verwenden von C / C ++ statischen Bibliotheken von iPhone ObjectiveC Apps

Ist es möglich, ein C static library-API, die verwendet C++ intern und verstecken diese von den Benutzern der Bibliothek?

Habe ich geschrieben eine portable C++ Bibliothek, die ich wünschte, zu statisch link zu einer iPhone-Anwendung.

Erstellt habe ich ein Xcode-Projekt mit der Max OS X "static library" - Vorlage und kopiert die Quelle über, sowie das schreiben eines C-wapper (Umgang mit Ausnahmen) Verwendung (extern "C").

Ich versuche, um die erzeugte Bibliothek (.eine Datei in einem anderen Kakao-iPhone-Anwendung.

Alles funktioniert gut, wenn das bei mir.mm) - Erweiterungen auf die Berufung ObjectiveC-Datei und (.cpp), die auf die Implementierung der Klasse in der Bibliothek.

Aber ich bekomme nicht aufgelöste Symbole auf die Verknüpfung, wenn ich versuche, und ändern Sie die wrapper-Datei (.c) Verlängerung, obwohl alle wrapper-Funktion, die Dateien sind nur C-Funktionen.

Nur weil C++ verwendet intern in einer Bibliothek bedeutet es, dass es extern immer noch behandelt werden muss als ein C++ - Programm. Ist es nicht sowieso zur Durchsetzung dieser Abstraktion?

Edit: Danke für die Antworten,

Hatte ich mich schon mit extern "C", ich war mir nur unsicher welche Konfiguration ist, wo erforderlich, im aufrufenden Projekt. dh. wenn die aufrufende projiziert erfordern würde, um zu wissen, ob es verwendet C++ oder sein könnten, unwissend und denke es ist eine Reine C-Bibliothek.

Würde es scheinen ich kann nicht, und muss ich nutzen (.mm) Dateien auf meinem ObjectiveC Klassen.

InformationsquelleAutor der Frage Akusete | 2008-12-18

Schreibe einen Kommentar