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

Sil*_*ing 3 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
Run Code Online (Sandbox Code Playgroud)

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

小智 5

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

我遇到了同样的链接错误,多亏了 Andrew7Webb ,我在这里找到了解决方案。

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

  • #include <stdio.h>在您的项目中添加和内联函数;
  • 添加一个额外的库到你的链接器输入:legacy_stdio_definitions.lib通过在你的项目属性对话框中编辑链接器输入

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

有关更准确的解释,请参阅他的帖子。