对于OpenGL在vs中使用时,报Error LNK2019:Unresolved External Symbol * Referenced In Function *的一种情况
已有的方法
在众多的博客中,已经有前辈归纳出了可能的几种情况,即:
- 采用第三方库或者开源库,忘记添加依赖项
- 头文件中声明了函数但是源文件里没有进行定义
- 下载的程序是64位但是编译环境选择了32位
我所遇到的情况
我是先用了cmake生成了GLFW.sln文件再用vs打开,然后再用vs编译生成了glfw3.lib作为一会要用的库。新建了项目后在project——properties中添加了include和lib的目录,在linker中也添加了glfw3.lib。
(话说,这个教程可真的太好了www,是在b站上看见一个去英国留学的研究生学长做的课程作业视频评论区里发现的,需要的拿去)
本来都是按照教程一步步来的吧,本以为平安无事,甚至编译都通过了。
但是!!!!!!!!!!!!!!!!!!
开始报error lnk2019,全是这个库里的。。。(图就不截了,要脸。。。)
在尝试了最上边的一系列方法后,都没用,后来发现有这样一条warning,大意是库机器是64位而目标机器是32位的,原本以为是上边提到的第三种情况,把debug、linker——advanced里的x86全改成了x64,甚至还排列组合企图暴力求解。。。
就在万念俱灰之时打算直接把二进制文件下下来,下到一半突然察觉到是不是当初编译生成glfw3.lib的时候用的是64位的。(多亏图书馆网不是很好,要是好到瞬间就下完了没准还想不到www)之后替换成32位的二进制文件,果然可以了。
其实这种和上面第三种情况都是一种,只不过这次是库为64位而编译环境为32位的,只能说还是太菜,没能第一时间想到是库文件的问题(关键是编译都过了就没往这方面想。。。)
一点牢骚(没啥营养 别看了去学习去干活!💢💢💢)
各位看个乐就行,简单记录一下学习OpenGL的心路历程,姑且也是生涯第一篇博客,有说的不对的地方求轻喷。可能看起来废话挺多的,但都是自个写的,有借鉴也贴出了链接,一直以来挺反感把人家写的东西大段连图连代码一并粘过来然后下面再甩个链接,有的甚至连链接都不贴了,权当自己写的丰富自己博客了,可别说什么收藏优质内容,这么想收藏插个书签不好么。。。找解决方法的人找了半天全是一个回答,这种东西最没营养,大伙是来解决问题的又不是来看鹦鹉学舌的,每次遇到这种情况都挺无语的,这边自己急得一批结果找了一堆都是一模一样的,就这就这就这。