我习惯于为 Linux 编译,所以这个 .lib 东西对我来说有点奇怪。在 Visual Studio 下使用我的程序时,我一直在为其他库甚至 Microsoft 运行时获取随机未解析的外部符号。
1>glfw3.lib(init.c.obj) : error LNK2019: unresolved external symbol __imp__vsnprintf referenced in function __glfwInputError
1>MSVCRTD.lib(vsnprintf.obj) : error LNK2001: unresolved external symbol __imp__vsnprintf
1>glfw3.lib(context.c.obj) : error LNK2019: unresolved external symbol __imp__sscanf referenced in function _parseVersionString
1>MSVCRTD.lib(vsnprintf.obj) : error LNK2001: unresolved external symbol __imp___vsnprintf
1>C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\lib\OLDNAMES.lib : warning LNK4272: library machine type 'UNKNOWN' conflicts with target machine type 'X86'
我只包含这些库,我可以确认它们已被找到:
x86/glew32s.lib
x86/glfw3.lib
x86/glfw3dll.lib
opengl32.lib
他们继承的值(value)观:
kernel32.lib
user32.lib
gdi32.lib
winspool.lib
comdlg32.lib
我可以确认这是准确的顺序。我已经尝试安装和重新安装 Windows 7 SDK 和 Visual Studio - 我也在 Windows 7 上。
如有任何关于此问题的帮助,我们将不胜感激,如果需要,我很乐意提供更多信息。
谢谢,邦西
最佳答案
您还可以向链接器输入添加一个额外的库,即 legacy_stdio_definitions.lib
转到“属性”>“链接器”>“输入”。
并在附加依赖项中添加上述库。
关于c++ - 不应该存在的随机未解析外部符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29556290/