解决 glfw3.lib(input.obj) : error LNK2019: 无法解析的外部符号 __imp_strspn,函数 glfwUpdateGamepadMappings 中引用了该符号

环境:

vs2019 community

glfw3.3.2

问题描述:

因为想只用lib库编译代码,不想最终输出带上一堆dll文件,所以在vs做了如下图所示的设置:

解决 glfw3.lib(input.obj) : error LNK2019: 无法解析的外部符号 __imp_strspn,函数 glfwUpdateGamepadMappings 中引用了该符号_第1张图片

重新编译时出现如题类似的错误,查找资料这里想到可能也是最初建立glfw3.3.2编译工程时配置cmake时出现什么错误,所以对glfw3.3.2的cmake配置做如下图所示的修改:

解决 glfw3.lib(input.obj) : error LNK2019: 无法解析的外部符号 __imp_strspn,函数 glfwUpdateGamepadMappings 中引用了该符号_第2张图片

勾掉 USE_MSVC_RUNTIME_LIBRARY_DLL 这项,再次生成工程--->编译,得到新的lib文件,使用该文件,问题解决。

 

总结:

后来去看之前glfw3.3.2的编译工程,看到属性配置如下所示:

解决 glfw3.lib(input.obj) : error LNK2019: 无法解析的外部符号 __imp_strspn,函数 glfwUpdateGamepadMappings 中引用了该符号_第3张图片

可以看到之前编译工程在代码生成--->运行库,这里的选择与自己目标工程是不同的,以后排查这类问题,可以借鉴这种经验,再有,直接修改之前编译工程的运行库选项,比如设为 MTd得到的lib文件放到目标工程里也是正确的。

你可能感兴趣的:(工作,openGL,glfw)