Bon*_*cey 11 c++ windows linker symbols visual-studio
我习惯为Linux编译所以这个.lib的东西对我来说有点奇怪.使用Visual Studio下的程序,我不断为其他库甚至Microsoft Runtimes获取随机未解析的外部符号.
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'
Run Code Online (Sandbox Code Playgroud)
我只包括这些库,我可以确认它们被发现:
x86/glew32s.lib
x86/glfw3.lib
x86/glfw3dll.lib
opengl32.lib
Run Code Online (Sandbox Code Playgroud)
凭借其继承的价值观:
kernel32.lib
user32.lib
gdi32.lib
winspool.lib
comdlg32.lib
Run Code Online (Sandbox Code Playgroud)
我可以确认这是确切的顺序.我已经尝试安装并重新安装Windows 7 SDK和Visual Studio - 我也在Windows 7上.
任何有关此问题的帮助将不胜感激,如果需要,我很乐意提供更多信息.
谢谢,Boncey
Gur*_*tti 18
您还可以向链接器输入添加其他库,即 legacy_stdio_definitions.lib
转到属性>链接器>输入.
在Additional Dependencies中添加上面提到的库.
问题是你的glfw静态库是使用与你正在使用的不同版本的Visual Studio构建的.截至2015年春季,glfw.org上的预构建版本与Visual Studio 2015 RC(您似乎正在使用)不兼容.
幸运的是,GLFW是一个在许可许可下发布的小代码库,因此最简单的解决方案就是在您的解决方案中为它创建一个新项目.步骤将是这样的:
include,deps/GL以及创建一个src文件夹.src您要支持的平台的文件夹中.对于Windows,这是带有win或wgl前缀或没有前缀的所有内容.你可以忽略所有的cmake东西.src名为glfw_config.h包含#defines的_GLFW_WIN32,_GLFW_WGL和_GLFW_USE_OPENGL.如果您不仅仅支持Windows,则必须有条件地在此文件中定义所需的选项.所有选项都在描述中src/glfw_config.h.in._GLFW_USE_CONFIG_H到定义中.$(SolutionDir)GLFW\$(Platform)\$(Configuration)\glfw.lib.)| 归档时间: |
|
| 查看次数: |
14877 次 |
| 最近记录: |