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

Linker msvc上缺少标准库函数调用的库文件,linker,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_vsnp

我正在尝试在没有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

但我不知道是什么关闭了默认LIB,也不知道我必须链接哪些。我知道这篇文章很老了,但解决方案可能对其他人有用,因为VS2017仍然存在这个问题

我也有同样的链接错误,多亏了Andrew7Webb,我找到了解决方案

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

  • 添加
    #在项目中包括
    和内联函数
    
  • 通过在“项目属性”对话框中编辑链接器输入,向链接器输入添加一个附加库:
    legacy\u stdio\u definitions.lib
我选择了第二个,它工作得很好


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

您是否运行了
vcvvarsall.bat
来设置命令行工具所需的环境变量?如果没有,我读了。如果没有,我将能够在不指定整个路径的情况下运行编译器;-)但感谢您的想法:-)最好发布导致错误的完整链接器命令行。我再次回到cmake。恐怕我已经没有了。但我记得:link.exe/libpath:“theglfw.lib main.obj/out:main.exe。也许还需要调试。没别的了。这就是问题的症结所在。