ホームページ >バックエンド開発 >C++ >Visual Studio 2015 の SDL2 で未解決の外部シンボル エラーが発生するのはなぜですか?

Visual Studio 2015 の SDL2 で未解決の外部シンボル エラーが発生するのはなぜですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-28 12:55:13182ブラウズ

Why Am I Getting Unresolved External Symbol Errors with SDL2 in Visual Studio 2015?

Visual Studio 2015 の SDL2 での未解決の外部シンボル エラー

リンカーによって報告される「未解決の外部シンボル」エラーは、必要なシンボルが、__imp__fprintf および __imp____iob_func が定義されていない、またはプログラム内で正しくリンクされています。

必要なライブラリ (SDL2.lib および SDL2main.lib) がすべて正しくリンクされているとのことでした。ただし、問題は、Visual Studio 2015 と以前のバージョンの間で標準入出力 (I/O) 関数の定義が異なることにある可能性があります。

Visual Studio 2015 では、printf、fprintf、stderr などの関数が定義されています。 __iob_func() の代わりに __acrt_iob_func() を使用します。これは、{stdin,stdout,*stderr} を含む配列を返すために、__iob_func() を自分で定義する必要がある場合があることを意味します。

stdio 関数の未解決の外部シンボル エラーを解決するには、次のようにします。リンカオプションにlegacy_stdio_settings.libを追加できます。このライブラリは、Visual Studio 2015 のこれらの関数に必要な定義を提供します。

要約すると、この問題は、Visual Studio 2015 の標準 I/O 関数の定義の変更によって発生します。リンカー エラーを修正するには、__iob_func() を定義し、legacy_stdio_settings.lib をリンカー オプションに追加します。

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。