Linkertoolwarnung LNK4248
unresolved typeref token (token) for 'type'; Image kann nicht ausgeführt werden
Ein Typ verfügt nicht über eine Definition in MSIL-Metadaten.
LNK4248 kann auftreten, wenn nur eine Vorwärtsdeklaration für einen Typ in einem MSIL-Modul (kompiliert mit /clr) vorhanden ist, auf den der Typ im MSIL-Modul verwiesen wird und wo das MSIL-Modul mit einem systemeigenen Modul verknüpft ist, das eine Definition für den Typ aufweist.
In diesem Fall stellt der Linker die systemeigene Typdefinition in den MSIL-Metadaten bereit, und dies kann für das richtige Verhalten sorgen.
Wenn es sich bei einer Weiterleitungstypdeklaration jedoch um einen CLR-Typ handelt, ist die systemeigene Typdefinition des Linkers möglicherweise nicht korrekt.
Weitere Informationen finden Sie unter /clr (Common Language Runtime-Kompilierung).
So beheben Sie diesen Fehler
- Geben Sie die Typdefinition im MSIL-Modul an.
Beispiele
Im folgenden Beispiel werden LNK4248 generiert. Definieren Sie die Struktur A, die aufgelöst werden soll.
// LNK4248.cpp
// compile with: /clr /W1
// LNK4248 expected
struct A;
void Test(A*){}
int main() {
Test(0);
}
Im folgenden Beispiel wird eine Vorwärtsdefinition eines Typs verwendet.
// LNK4248_2.cpp
// compile with: /clr /c
class A; // provide a definition for A here to resolve
A * newA();
int valueA(A * a);
int main() {
A * a = newA();
return valueA(a);
}
Im folgenden Beispiel werden LNK4248 generiert.
// LNK4248_3.cpp
// compile with: /c
// post-build command: link LNK4248_2.obj LNK4248_3.obj
class A {
public:
int b;
};
A* newA() {
return new A;
}
int valueA(A * a) {
return (int)a;
}
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für