注意:我已经看过有关C语言中出现此问题的人的帖子,因为glew.c脚本没有为他加载,我不认为这是我的问题。从GLEW文档网站上的确切步骤尽可能接近(并且我没有提到添加名为glew.c的文件的要求)我已经使用MinGW设置了glew并将dll和libs提取到适当的位置文件夹在编译时我收到此消息:
undefined reference to `_imp__glewInit@0`
这是我的主文件main.cpp:
#include <stdlib.h>
#include <iostream>
#include <windows.h>
#include <GL/glew.h>
#include <GL/glut.h>
using namespace std;
int main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutCreateWindow("Glew Test");
GLenum err = glewInit();
if (GLEW_OK != err)
{
cout << "Something effed up";
}
cout << "Awwwwwwwwhhhhh Yeeeeeeeaaaaah!!!";
return 0;
}
这是我的MakeFile:
MY_LIBS = -lglut32 -lglew32 -lopengl32
glewex:
g++ -g main.cpp -o glewex $(MY_LIBS)
关于我为何会收到此错误的任何想法?
答案 0 :(得分:9)
为什么要坚持在外部链接到这个库?它造成的麻烦比它值得多。
将glew.c
添加到您的项目中。只需将其与其他源文件一起编译即可。只要你#define GLEW_STATIC
它就可以正常工作。问题解决了。
即使您成功将其链接到库,您也可以绑定到一个特定的体系结构/构建/版本。如果你只是包含glew.c
,你几乎可以在任何地方自由构建项目。
答案 1 :(得分:3)
我有类似的问题。 glewGetErrorString和glewInit报告为我未定义。无法追踪问题。
然后我记得我已经下载了64位版本的glew而free-glut和我下载的其他所有内容都是32位
重新下载了32位的glew。一切都很完美!希望将来帮助某人。