Ungelöste externe Symbolfehler mit SDL2 in Visual Studio 2015
Die vom Linker gemeldeten „ungelösten externen Symbolfehler“ weisen darauf hin, dass die erforderlichen Symbole vorliegen , __imp__fprintf und __imp____iob_func, sind in Ihrem nicht korrekt definiert oder verknüpft Programm.
Sie haben erwähnt, dass Sie alle notwendigen Bibliotheken (SDL2.lib und SDL2main.lib) korrekt verknüpft haben. Das Problem kann jedoch in den unterschiedlichen Definitionen von Standard-Eingabe-/Ausgabefunktionen (E/A) zwischen Visual Studio 2015 und früheren Versionen liegen.
In Visual Studio 2015 sind Funktionen wie printf, fprintf und stderr definiert Verwendung von __acrt_iob_func() anstelle von __iob_func(). Dies bedeutet, dass Sie möglicherweise __iob_func() selbst definieren müssen, um ein Array zurückzugeben, das {stdin,stdout,*stderr} enthält.
Um die ungelösten externen Symbolfehler für stdio-Funktionen zu beheben, müssen Sie Sie können Legacy_stdio_definitions.lib zu Ihren Linker-Optionen hinzufügen. Diese Bibliothek stellt die notwendigen Definitionen für diese Funktionen in Visual Studio 2015 bereit.
Zusammenfassend lässt sich sagen, dass das Problem durch die Änderung der Definitionen von Standard-E/A-Funktionen in Visual Studio 2015 entsteht. Um die Linkerfehler zu beheben , definieren Sie __iob_func() und fügen Sie Legacy_stdio_definitions.lib zu Ihren Linker-Optionen hinzu.
Das obige ist der detaillierte Inhalt vonWarum erhalte ich mit SDL2 in Visual Studio 2015 ungelöste externe Symbolfehler?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!