好几年前遇到过无法解析外部符号glfwInit的问题,当时查了好久解决了,然而没有记录,忘记如何解决的。于是乎,今天卸载vs2017、安装vs2019后,原来的所有OpenGL的程序没法编译成功,报错一系列的
error LNK2019: 无法解析的外部符号 glfwInit,函数 main 中引用了该符号
依然,我寻求Google的帮助,以为是常见cg问题:x86和x64的选择。胡乱试了一通后依然报错。
突然,灵光一现,是不是之前我用源码编译的glfw不能用在vs2019了呢?于是我又重新编译了GLFW,我看了一下vs2019下我代码的项目配置:
配置属性 -> 链接器 -> 输入 -> 附加依赖项
,将其中指向的glfw3.lib文件替换为新编译的glfw3.lib。问题解决~
总结:无法解析外部符号应该首先检查链接器是否包含改库的lib,如果包含,应该检查是否适配当前的VS版本,不适配应更新。