Heim >Backend-Entwicklung >C++ >Warum erhalte ich in Visual Studio 2015 unaufgelöste externe Symbole __imp__fprintf und __imp____iob_func, wenn ich SDL2 verwende?

Warum erhalte ich in Visual Studio 2015 unaufgelöste externe Symbole __imp__fprintf und __imp____iob_func, wenn ich SDL2 verwende?

DDD
DDDOriginal
2024-12-02 05:02:12356Durchsuche

Why Do I Get Unresolved External Symbols __imp__fprintf and __imp____iob_func in Visual Studio 2015 When Using SDL2?

Ungelöste externe Symbole: __imp__fprintf und __imp____iob_func in Visual Studio 2015

Beim Kompilieren von Programmen, die SDL2 in Visual Studio 2015 verwenden, kann es zu ungelösten Symbolen kommen externe Symbole __imp__fprintf und __imp____iob_func. Dieser Fehler weist darauf hin, dass der Linker Verweise auf diese Symbole in den verknüpften Bibliotheken nicht auflösen kann.

Zuvor definierte Visual Studio Standard-E/A-Funktionen (stdin, stdout, stderr) mithilfe von __iob_func() und seinem Index. In Visual Studio 2015 wurden die Definitionen jedoch geändert und stattdessen __acrt_iob_func() verwendet. Durch diese Änderung wurde der direkte Verweis auf __iob_func() entfernt, was zu ungelösten Symbolfehlern bei der Verwendung von Bibliotheken führte, die mit älteren Versionen von Visual Studio kompiliert wurden.

Um dieses Problem zu lösen, können Sie entweder:

  • Definieren Sie __iob_func() selbst: Erstellen Sie eine benutzerdefinierte Definition für __iob_func(), die ein Array mit zurückgibt {stdin,stdout,*stderr}.
  • Legacy_stdio_definitions.lib hinzufügen: Fügen Sie diese Bibliothek zu Ihren Linker-Optionen hinzu. Es enthält Definitionen für Standardfunktionen, die in Ihrem Projekt möglicherweise fehlen.

Nachdem Sie diese Änderungen vorgenommen haben, kompilieren Sie Ihren Code neu. Die ungeklärten externen Symbole sollten nicht mehr erscheinen.

Das obige ist der detaillierte Inhalt vonWarum erhalte ich in Visual Studio 2015 unaufgelöste externe Symbole __imp__fprintf und __imp____iob_func, wenn ich SDL2 verwende?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn