首页 > 后端开发 > C++ > 为什么我在 Visual Studio 2015 中使用 SDL2 时遇到未解决的外部符号错误?

为什么我在 Visual Studio 2015 中使用 SDL2 时遇到未解决的外部符号错误?

Susan Sarandon
发布: 2024-11-28 12:55:13
原创
183 人浏览过

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 等函数使用 __acrt_iob_func() 而不是 __iob_func()。这意味着您可能需要自己定义 __iob_func() 以返回包含 {stdin,stdout,*stderr}.

要解决 stdio 函数未解决的外部符号错误的数组,您可以将legacy_stdio_definitions.lib添加到您的链接器选项中。该库将为 Visual Studio 2015 中的这些函数提供必要的定义。

总而言之,该问题是由于 Visual Studio 2015 中标准 I/O 函数的定义发生变化而产生的。修复链接器错误,定义 __iob_func() 并将legacy_stdio_definitions.lib 添加到链接器选项中。

以上是为什么我在 Visual Studio 2015 中使用 SDL2 时遇到未解决的外部符号错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板