Heim > Backend-Entwicklung > C++ > Warum erhalte ich in meinem SDL2 Visual Studio 2015-Projekt die nicht aufgelösten externen Symbole __imp__fprintf und __imp____iob_func?

Warum erhalte ich in meinem SDL2 Visual Studio 2015-Projekt die nicht aufgelösten externen Symbole __imp__fprintf und __imp____iob_func?

Susan Sarandon
Freigeben: 2024-11-28 09:33:10
Original
264 Leute haben es durchsucht

Why am I getting Unresolved External Symbols __imp__fprintf and __imp____iob_func in my SDL2 Visual Studio 2015 Project?

Unaufgelöste externe Symbole __imp__fprintf und __imp____iob_func in SDL2

Beim Kompilieren eines SDL2-Projekts in Visual Studio 2015 stoßen Entwickler möglicherweise auf unaufgelöste externe Symbole __imp__fprintf und __imp____iob_func.

Das zugrunde liegende Problem ergibt sich aus der Tatsache, dass Visual Studio 2015 stdin, stderr und stdout anders definiert als frühere Versionen. In älteren Visual Studio-Versionen wurden diese als Makros definiert, die auf Arrays verweisen, die die drei Standard-E/A-Streams enthalten. In Visual Studio 2015 werden sie jedoch mit __acrt_iob_func() definiert.

Daher stößt Code, der mit früheren Visual Studio-Versionen kompiliert wurde und auf den älteren Definitionen von stdin, stderr und stdout basiert, auf eine undefinierte Referenz zu __iob_func() beim Verknüpfen mit einer Bibliothek (.lib), die mit Visual Studio kompiliert wurde 2015.

Um das Problem zu beheben, besteht eine Lösung darin, __iob_func() manuell als Array zu definieren, das {stdin, stdout, *stderr} enthält. Dadurch wird sichergestellt, dass der Code über den erforderlichen Verweis auf __iob_func() verfügt.

Darüber hinaus kann jeder Code, der stdio-Funktionen verwendet (z. B. scanf, printf), auch auf unaufgelöste externe Symbole stoßen. Um dieses Problem zu beheben, können Entwickler die Datei „legacy_stdio_definitions.lib“ zu ihren Linker-Optionen hinzufügen. Diese Bibliothek stellt Definitionen für die fehlenden stdio-Funktionen bereit.

Das obige ist der detaillierte Inhalt vonWarum erhalte ich in meinem SDL2 Visual Studio 2015-Projekt die nicht aufgelösten externen Symbole __imp__fprintf und __imp____iob_func?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage