C ++未定义对`_imp__glewInit @ 0`的引用

时间:2012-09-12 23:51:31

标签: c++ makefile glew

注意:我已经看过有关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)

关于我为何会收到此错误的任何想法?

2 个答案:

答案 0 :(得分:9)

为什么要坚持在外部链接到这个库?它造成的麻烦比它值得多。

glew.c添加到您的项目中。只需将其与其他源文件一起编译即可。只要你#define GLEW_STATIC它就可以正常工作。问题解决了。

即使您成功将其链接到库,您也可以绑定到一个特定的体系结构/构建/版本。如果你只是包含glew.c,你几乎可以在任何地方自由构建项目。

答案 1 :(得分:3)

我有类似的问题。 glewGetErrorString和glewInit报告为我未定义。无法追踪问题。

然后我记得我已经下载了64位版本的glew而free-glut和我下载的其他所有内容都是32位

重新下载了32位的glew。一切都很完美!希望将来帮助某人。