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
 

MirC23

Erdapfel
Registriert
27.07.17
Beiträge
2
Ich glaube du musst drhCmd.execute() ausführen.

Schau mal hier wird das auch gemacht.