schnelle Frage ... das ist nur ein Missverständnis über die Vererbung mein Ende, so sollte dies schnell behoben werden (ich verwende objective-C++). Ich werde die Frage nehmen ab, wenn es ist bereits gelöst ... Ich konnte es nicht damit meinen Beitrag finden:Vererbung - Symbol undefined Objective-C++
Ich habe folgendes:
base.h Datei
#ifndef BASE_H
#define BASE_H
class Base {
public:
// Virtual Constructor
Base() {};
}
#endif
Abgeleitet .h-Datei
// Derived.h
#ifndef DERIVED_H
#define DERIVED_H
#include "Base.h"
class Derived : public Base {
public:
Derived();
}
#endif
derived.cpp Datei
// Derived.cpp
#include "Derived.h"
Derived::Derived() {
// Do construction here!
}
Wrapper.mm Datei
// Wrapper.mm
#include "Derived.h"
- (id)init {
if (self = [super init]) {
Base *b = new Derived(); // Cannot compile?
}
}
Ich bin für "Derived::Derived()" referenced from -[Wrapper init] in Wrapper.o; Symbol(s) not found for architecture arm64
einen undefinierten Fehler. Wie behebe ich das? Vielen Dank!
Sie sind Die O-Datei, die beim Kompilieren von Derived.cpp generiert wurde, wird nicht verknüpft. Fügen Sie einfach Derived.o am Ende Ihrer Compiler-Argumente hinzu, wenn Sie Ihre Wrapper.mm-Datei kompilieren, um eine ausführbare Datei zu erstellen, und Sie sollten gut sein (obwohl ich noch nie von obj-C++ gehört hatte) – xaxxon
@xaxxon OH MEIN GOTT Ich dachte, ich würde verrückt, weil es völlig in meinem Android-Build funktioniert und nicht in meinem iOS. Vielen Dank! Wenn Sie möchten, können Sie Ihren Kommentar als Antwort und ich werde es markieren! –
getan. Happy du hast es behoben. – xaxxon