错误 LNK2019:无法解析的外部的符号 _sscanf或者_vsprintf

会有一股神秘感。 提交于 2019-11-28 08:17:18

错误 LNK2019:无法解析的外部的符号 _sscanf和_vsprintf

在使用Visual Studio 编译的时候可能会遇到 ERROR LNK2019:无法解析的外部的符号 _sscanf, _sscanf_s这样的函数,特别是使用Visual Studio2017时,经常出现,如下图所示。

在这里插入图片描述
解决方法:
方法一:点击项目–属性,弹出属性对话框后,打开“链接器”点击输入,在“附加依赖项”中添加legacy_stdio_definitions.lib 即可。如下图所示
在这里插入图片描述
在这里插入图片描述
添加完后就可以了,错误消失了
在这里插入图片描述
在这里插入图片描述
方法二:在报错的.cpp文件中的头文件下面加#parameter(lib,"legacy_stdio_definitions.lib ")
提示:由于很多时候我们难以找到具体出错的.cpp文件,所以方法一更好用

反思原因:
这些函数明明就是系统自带的函数,但是为什么在VS2017中编译不过,但是在低版本中编译的过呢?
原来是因为默认编译时将许多标准库采用内联方式处理,因而没有可以链接的标准库文件,所以要专门添加标准库文件来链接标准库中的函数

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!