Linker-Fehler, der C-Function von Objective-C ++ aufruft

Ich habe ein komisches Problem mit dem linker. Ich habe code, der sieht so aus:

    double given_amount = self.modelController.levelCompleteRewardAmount;
    swrve_currency_given(swrve, (CFStringRef)@"currencyName", given_amount);

Ich habe diesen code an zwei verschiedenen stellen: In einem objective-c und objective-c++ - Datei. Kompiliert er fein in objective-C-land, aber die swrve_currency_given () - Funktion bewirkt, dass die folgenden in meinem WGController.mm Datei:

Undefined symbols for architecture armv7:
  "swrve_currency_given(Swrve*, __CFString const*, double)", referenced from:
      -[WGController giveTheUserSomeCashForPlayingThisLevel] in WGController.o
ld: symbol(s) not found for architecture armv7
collect2: ld returned 1 exit status

Ich bin mir nicht ganz sicher, ob dieser Fehler ist bezogen auf die Obj-C vs. C++ Sache, aber es fühlt wie es ist. Meine Theorie ist, dass Sie vielleicht denkt, dass es ist eine Funktion, die auf die Obj-C-Klasse? Die "swrve" - code ist mit 3rd-party-code, ein .h und .c-Datei und ich importieren, etwa so:

#import "swrve.h"

Jede Hilfe ist willkommen!
Dank

Kommentar zu dem Problem - Öffnen
Sind Sie auch importieren es in das Projekt für den linker? Gehen Sie auf die Eigenschaften Ihrer Zielgruppe, und öffnen Sie "Linked Frameworks and Libraries" auf der Seite Zusammenfassung. Die swrve - Bibliothek sollte es sein; wenn es nicht, fügen Sie es und versuchen, kompilieren Sie erneut. Kommentarautor: dasblinkenlight
Die Bibliothek ist nicht eine statische lib/framework, es ist nur eine .c und .h-Datei. (habe ich aktualisiert meine Frage zu reflektieren). Kommentarautor: Chris Hill

InformationsquelleAutor der Frage Chris Hill | 2012-02-17

Schreibe einen Kommentar