Symbol nicht gefunden, erwartet im Flat-Namespace ObjC ++

8

Ich habe wahrscheinlich, was ein einfaches Problem ist, aber es gibt keine informativen Fehler oder Warnungen während der Kompilierung, um mich zu warnen, was falsch läuft.

Ich habe eine Objective-C ++ - App, die C ++ - Haupt- und ObjC-Header-Dateien enthält.

Es baut gut auf, aber wenn es ausgeführt wird, gibt es diese Fehlermeldung:

%Vor%

Kein Googling hat zu einer Lösung geführt, und ich bin mir sicher, dass ich irgendwo eine Kompilierung oder Build-Option verpasst habe.

"AppController.h" ist im Ziel (aktiviert) und #import 'd in der ObjC-Klassendatei enthalten.

Jede Hilfe wird sehr geschätzt.

ObjC ++ bereitet mir ständig Kopfschmerzen.

Danke,

-S!

    
Stephen Furlani 08.04.2010, 14:48
quelle

2 Antworten

5

Offensichtlich fehlt die AppController-Klasse. Ist die AppController-Klasse in einem Framework der dynamischen Bibliothek definiert? Wenn ja, weiß die App, woher sie die Bibliotheken / Frameworks finden kann?

Dies ist übrigens ein Linker-Problem. Die Header-Dateien sind irrelevant. Es sind die .m oder .mm Dateien, die Sie ansehen müssen.

    
JeremyP 11.04.2010, 18:52
quelle
1

Ich bin mir nicht sicher, ob das Ihr Problem ist, aber ich hatte ein ähnliches Problem mit einer C ++ - DLL, die mich den ganzen Tag zum Debugging brachte. Ich habe in C ++ seit ungefähr 15 Jahren nicht programmiert, und während ich versuchte, eine reine virtuelle Funktion zu schreiben, verwendete ich die vertraute Syntax "virtual void f ();" -- Hoppla. In C ++ sollte es "virtual void f () == 0;" Die neueste Version von gcc auf Mac OSX 10.9.2 kompiliert den Code gerne.

Ich denke, es ist eine vollkommen legale Forward-Deklaration ... allerdings nicht sicher, ob C ++ Klassen mehrere Dateien umfassen kann, daher scheint es so zu sein, als würde dies markiert werden (da keine Implementierung in der CXX-Datei enthalten ist) Ereignis, das Symbol macht es in den Objektcode, und der Linker beschwert sich nie, so dass Sie mit der fehlenden Referenz enden. Hoffe, das hilft jemandem.

    
Josh 12.04.2014 06:03
quelle