您的位置:首页 > 运维架构

[VS2013+Win7]GLEW库配置问题 error LNK2019: 无法解析的外部符号 _gluGetString@4

2015-05-23 23:26 344 查看
先说下载安装GLEW的方法:
http://glew.sourceforge.net/下载包,里面有win32和win64两个版本,我虽然是x64,但是亲测只能用win32的
把头文件拷贝到VC/include/GL文件夹,将win32的glew32.lib拷贝到VC/lib文件夹,将win32的glew32.dll拷贝到C:\Windows\SysWOW64文件夹

测试代码为:

#include <GL/glew.h>

int main(){

const GLubyte * p = glGetString(GL_VERSION);

return 0;



错误为:
1>OpenGLVersion.obj : error LNK2019: 无法解析的外部符号 __imp__glGetString@4,该符号在函数 _main 中被引用

1>Visual Studio 2013\Projects\OpenGLVersion\Debug\OpenGLVersion.exe : fatal error LNK1120: 1 个无法解析的外部命令

这个问题,可能与软件有关,所以建议大家把各个方法都试一试。

现在已经有一些博文是谈这个问题的,建议先试试,都不行再来试试我的这个方法:
http://blog.csdn.net/vanlin5566/article/details/42384387 http://blog.csdn.net/huanghuibai/article/details/9503261
总结一下网上常规解决办法有几种:

1.右键单击项目>属性>链接器>输入,添加依赖项glew32.dll

2.在前面添加#pragma comment(lib,"glew32.lib")

3.认为动态链接库glew32.lib没法用,但是静态链接库glew32s.lib可以用,所以在前面添加#deifne GLEW_STATIC,使用静态库。当然也就不需要glew32.dll了 。

以上方法我都试过了,但是无效,因为我的glew32.lib和glew32s.lib都没法用。所以求助于其它库的链接库。

我的解决方法是:在开头添加

#include <GL/glew.h>

#include <GL/freeglut.h> (这个库你得自行下载)

当然开头如果有#define GLEW_STATIC也要删去

PS:有时glew库并没有被#include,但是其他库使用了glew库,出错的根本原因还是在这,那么就得在开头添加这两句

然后又遇到一个提示说找不到文件freeglutd.lib,这个也很蹊跷,然后将freeglut.lib的文件名改为了freeglutd.lib,然后就编译通过了。

虽然方法很不雅但是也是一个将就的方案吧。借鉴于上面的方法3。

另外之前还试过一个方法,在项目>属性>链接器>输入>依赖项里添加opengl32.lib,这段代码是可以运行了,但是其他的包含glew.h的代码仍然不能运行,所以这个方法不好。而添加freeglut.h的方法貌似能解决所有问题。所以发出来
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐