ホームページ > バックエンド開発 > C++ > SDL2 を使用すると、Visual Studio 2015 で未解決の外部シンボル __imp__fprintf および __imp____iob_func が発生するのはなぜですか?

SDL2 を使用すると、Visual Studio 2015 で未解決の外部シンボル __imp__fprintf および __imp____iob_func が発生するのはなぜですか?

DDD
リリース: 2024-12-02 05:02:12
オリジナル
357 人が閲覧しました

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

Visual Studio 2015 の未解決の外部シンボル: __imp__fprintf および __imp____iob_func

Visual Studio 2015 で SDL2 を使用するプログラムをコンパイルすると、未解決の外部シンボルが発生する可能性があります外部シンボル__imp__fprintf と __imp____iob_func。このエラーは、リンカーがリンクされたライブラリ内のこれらのシンボルへの参照を解決できないことを示します。

以前、Visual Studio は __iob_func() とそのインデックスを使用して標準 I/O 関数 (stdin、stdout、stderr) を定義していました。ただし、Visual Studio 2015 では定義が変更され、代わりに __acrt_iob_func() が使用されます。この変更により、__iob_func() への直接参照が削除されたため、古いバージョンの Visual Studio でコンパイルされたライブラリを使用すると、未解決のシンボル エラーが発生します。

この問題を解決するには、次のいずれかを実行できます。

  • __iob_func() を自分で定義します: を返す __iob_func() のカスタム定義を作成します。 {stdin,stdout,*stderr} を含む配列。
  • Legacy_stdio_settings.lib を追加します: このライブラリをリンカー オプションに追加します。これは、プロジェクトに不足している可能性のある stdio 関数の定義を提供します。

これらの変更を加えた後、コードを再コンパイルします。説明のない外部シンボルは表示されなくなります。

以上がSDL2 を使用すると、Visual Studio 2015 で未解決の外部シンボル __imp__fprintf および __imp____iob_func が発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート