• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Die Bildungsoffensive hier im Forum geht weiter! Jetzt sollen Kreativität und technische Möglichkeiten einen neue Dimension erreichen. Das Thema in diesem Monat lautet - Verkehrte Welt - Hier geht es lang --> Klick

Mixing C++ und ObjC

iFisch

Braeburn
Registriert
30.06.12
Beiträge
46
Hallo

nach langer Zeit wollte ich mal wieder was für das iphone entwickeln.
Ich muss dazu C++ Code mit dem ObjectiveC mixen.

Das sollte kein Problem sein, alle .m files in .mm umbenennen um dem Compiler den hint für C++/Obj++ zu geben
Meine C++ Klassen ins Projekt kopiert

Und in meinem RootViewController
#include "MyCommand.h"

und in der Methode:
- (IBAction)TurnOnClicked:(id)sender {
MyCommand* drhCmd = new MyCommand(true);
drhCmd->execute();
}

getippt.

Das ganze gibt mir einen Linker Fehler:

Undefined symbols for architecture i386:
"MyCommand::execute()", referenced from:
-[DataViewController TurnOnClicked:] in DataViewController.o

"DrCommand::DrCommand(bool)", referenced from:
-[DataViewController TurnHueOnClicked:] in DataViewController.o
ld: symbol(s) not found for architecture i386

clang: error: linker command failed with exit code 1

Den Linkerfehler interpretiere ich als ein Fehlen der Implementierung meiner C++ MyCommand Methoden. Als ob das .mm File welches MyCommand implementiert nicht kompiliert wird... aber es ist natürlich im Projekt vorhanden und baut auch korrekt.

Hat jemand Erfahrung mit dem Thema und kann mir einen Tipp geben?

Vielen Dank
 
Ich glaube du musst drhCmd.execute() ausführen.

Schau mal hier wird das auch gemacht.