1

我想让 GLEW 与 CodeBlocks 一起工作,并且一直在尝试让网站
上提供的第一个方法起作用。 这是将glew静态编译成可执行文件的方法。但我没能把它弄好。 我在运行 CodeBlocks 10.05 的 PC 上,Windows 7。


这是我到目前为止所做的:

  • 下载 GLEW 1.7.0
  • 解压到 C:
  • 在 CodeBlocks 中创建空项目
  • 将 glew.h、wglew.h 和 glew.c 移到我的项目源目录中
  • 将所有三个文件添加到项目中
  • 将 glew.c 中 glew.h 和 wglew.h 的包含路径从

    #include <GL/glew.h> 
    #include <GL/wglew.h>
    

    #include "glew.h"
    #include "wglew.h"
    
  • 使用以下代码创建了一个简单的主文件

    #define GLEW_STATIC
    #include "glew.h"
    
    int main() {
        glewInit();
        return 0;
    }
    

有了这个编译将导致大量的警告和错误。

  • 错误如:

    glew.c|2933|undefined reference to `wglGetProcAddress@4'|
    glew.c|2934|undefined reference to `wglGetProcAddress@4'|
    glew.c|2935|undefined reference to `wglGetProcAddress@4'|
    glew.c|2936|undefined reference to `wglGetProcAddress@4'|
    
  • 警告,例如:

    glew.c|10050|warning: '__wglewReleaseVideoCaptureDeviceNV' redeclared without dllimport attribute: previous dllimport ignored|
    glew.c|10052|warning: '__wglewBindVideoImageNV' redeclared without dllimport attribute: previous dllimport ignored|
    glew.c|10053|warning: '__wglewGetVideoDeviceNV' redeclared without dllimport attribute: previous dllimport ignored|
    glew.c|10054|warning: '__wglewGetVideoInfoNV' redeclared without dllimport attribute: previous dllimport ignored|
    glew.c|10055|warning: '__wglewReleaseVideoDeviceNV' redeclared without dllimport attribute: previous dllimport ignored|
    

我哪里做错了?
如有必要,我很乐意分享更多信息!

4

1 回答 1

4

您可以通过在 glew.c 中opengl32定义 s 之前将您的程序与这些警告链接起来来消除这些错误。GLEW_STATIC#include

在任何情况下,您的程序都无法运行,因为您需要有一个有效的 OpenGL 上下文才能使用glewInit. 您需要使用 glut/glfw/SDL/wglCreateContext/etc 创建一个。

于 2012-07-26T14:56:23.610 回答