msvc上缺少标准库函数调用的lib文件

时间:2015-09-21 21:03:25

标签: linker

我试图在没有IDE的情况下使用MSVC编译一些c / c ++代码。关于某些函数缺失的链接器错误。

glfw3.lib(init.c.obj) : error LNK2019: unresolved external symbol __imp_vsnprintf referenced in function _glfwInputError
msvcrt.lib(vsnprintf.obj) : error LNK2001: unresolved external symbol __imp_vsnprintf
glfw3.lib(context.c.obj) : error LNK2019: unresolved external symbol __imp_sscanf referenced in function parseVersionString
msvcrt.lib(vsnprintf.obj) : error LNK2001: unresolved external symbol __imp__vsnprintf

但我不知道是什么关闭了默认的库,也不知道我必须链接哪些库。

1 个答案:

答案 0 :(得分:3)

我知道这篇文章已经很老了但是这个解决方案可能对其他人有用,因为这个问题仍然存在于VS 2017中。

我遇到了相同的链接错误,感谢Andrew7Webb找到了解决方案here

显然,所有printf和scanf函数的定义都已内联移动。 因此,您有两个选择:

  • 在项目中添加#include <stdio.h>和内联函数;
  • 通过编辑“项目属性”对话框中的“链接器输入”,将附加库添加到链接器输入:legacy_stdio_definitions.lib

我选择了第二个并且效果很好。

请参阅他的帖子以获得更准确的解释。