我正在使用 GLEW版本1.10.0 与MinGW(通过CodeBlocks IDE),在Windows 8上运行。我从GLEW网站下载了Windows二进制文件,并且已经链接到库包含在该版本中。
我有一个链接问题,我似乎无法找到答案。我已经按照GLEW主页上的安装进行了操作。我已经将链接器引用到了glew32.lib,以及其他必需的库,例如opengl32和glu32。
不幸的是,编译这段代码(我也使用GLFW进行上下文/窗口管理):
#include <stdio.h>
#include <GL/glew.h>
#include <GLFW/glfw3.h>
#define TRUE 1
#define FALSE 0
int main()
{
GLFWwindow *window;
if (!glfwInit())
return -1;
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3.0);
window = glfwCreateWindow(640, 480, "Hello World!", NULL, NULL);
if (!window)
{
glfwTerminate();
return -1;
}
glfwMakeContextCurrent(window);
// Initialize GLEW
glewExperimental=TRUE;
GLenum err = glewInit();
if (err!=GLEW_OK)
fprintf(stderr, "Could not initialize GLEW!");
printf("%s\n", glGetString(GL_VERSION));
while (!glfwWindowShouldClose(window))
{
glClearColor(0.0, 0.0, 0.0, 0.0);
glClear(GL_COLOR_BUFFER_BIT);
glfwSwapBuffers(window);
glfwPollEvents();
}
glfwTerminate();
return 0;
}
我收到错误:
*对 imp _glewExperimental *
的未定义引用即使我是C的新手,据我所知,这意味着我指的是没有定义的东西,这通常意味着缺少了库。在这种情况下,我已经包含了库,并且我没有对我制作的其他GLEW引用有任何错误,例如 glewInit ,我觉得它也应该抱怨关于它应该是一个缺少库的问题。
我试图在网上搜索,但我根本没有找到关于这个问题的任何内容。
有人有任何想法吗? :)
非常感谢您的时间。它很受欢迎。
答案 0 :(得分:15)
我似乎已经解决了这个问题。对于任何想知道的人来说,问题似乎是来自GLEW网站的预构建Windows二进制文件,因为它们来自Visual Studio(它们是.lib文件)。我正在使用MinGW进行编译。一旦我尝试使用MinGW编译GLEW来创建.a存档,它就可以工作。
这里有关于如何为MinGW编译GLEW的stackoverflow的一个很好的答案,可以在here找到。
答案 1 :(得分:0)
尝试将#define GLEW_STATIC
放在第一行:
#define GLEW_STATIC
#include <stdio.h>
#include <GL/glew.h>
#include <GLFW/glfw3.h>
并将-lglew32s
放在链接库表中。
码块:
项目&gt;构建选项...&gt;链接器设置&gt;添加glew32s
然后点击向上箭头直到它第一个