C++ C++;对`\u imp的未定义引用__glewInit@0`

C++ C++;对`\u imp的未定义引用__glewInit@0`,c++,makefile,glew,C++,Makefile,Glew,注意:我在C语言中看到过关于这个人有这个问题的帖子,因为没有为他加载glew.C脚本,我认为这不是我的问题。通过尽可能地遵循GLEW文档网站上的确切步骤(其中我没有看到添加一个名为GLEW.c的文件的要求),我使用MinGW设置了GLEW,并将dll和LIB提取到适当的文件夹中,但在编译时我收到了以下消息: undefined reference to `_imp__glewInit@0` 这是我的主文件main.cpp: #include <stdlib.h> #include

注意:我在C语言中看到过关于这个人有这个问题的帖子,因为没有为他加载glew.C脚本,我认为这不是我的问题。通过尽可能地遵循GLEW文档网站上的确切步骤(其中我没有看到添加一个名为GLEW.c的文件的要求),我使用MinGW设置了GLEW,并将dll和LIB提取到适当的文件夹中,但在编译时我收到了以下消息:

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;
}

你知道我为什么会出现这个错误吗?

你为什么坚持从外部链接到这个库?它带来的麻烦远远超过了它的价值

glew.c
添加到项目中。只需将其与其他源文件一起编译即可。只要您
#定义GLEW\u STATIC
,它就可以正常工作。问题解决了


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

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

然后我想起我下载了64位版本的glew,而免费glut和我下载的所有东西都是32位的


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

尝试将
-lopengl32
移动到列表的前面。新的生成文件行:MY_LIBS=-lopengl32-lglut32-lglew32给出相同的错误您是否尝试静态链接到这些库?如果是这样,请在包含
GLEW.h
之前尝试
#定义GLEW_STATIC
。错误相同,只是没有“imp#”part@TheBuzzSaw你的意思是,在你的项目中包括
glew.h
?不是这样的
glew.c
?不是。我的意思是
glew.c
。我建议您将glew作为项目的一部分进行编译。当然,代码的其余部分将包括“glew.h”,但这不是本文的主题。
MY_LIBS = -lglut32 -lglew32 -lopengl32 
glewex:
    g++ -g main.cpp -o glewex $(MY_LIBS)