让GLEW在Code :: Blocks中编译

时间:2013-06-04 17:23:22

标签: c++ opengl compilation codeblocks glew

我想进入C ++学习OpenGL并使用Code :: Blocks。我能够获得freeglut工作,以及几个在线示例(以及随CB一起提供的示例)。 但是,当我尝试将GLEW包含在我正在关注的一些教程中时,我得到以下编译器错误:

obj\Debug\main.o||In function `RenderSceneCB':|
C:\C Programs\OpenGL Test\main.cpp|12|undefined reference to `_imp____glewEnableVertexAttribArray'|
C:\C Programs\OpenGL Test\main.cpp|13|undefined reference to `_imp____glewBindBuffer'|
C:\C Programs\OpenGL Test\main.cpp|14|undefined reference to `_imp____glewVertexAttribPointer'|
C:\C Programs\OpenGL Test\main.cpp|18|undefined reference to `_imp____glewDisableVertexAttribArray'|
obj\Debug\main.o||In function `CreateVertexBuffer':|
C:\C Programs\OpenGL Test\main.cpp|34|undefined reference to `_imp____glewGenBuffers'|
C:\C Programs\OpenGL Test\main.cpp|35|undefined reference to `_imp____glewBindBuffer'|
C:\C Programs\OpenGL Test\main.cpp|36|undefined reference to `_imp____glewBufferData'|
||=== Build finished: 7 errors, 0 warnings (0 minutes, 0 seconds) ===|

无论我做什么,我尝试了什么建议,我尝试链接的其他文件,我不断收到同样的错误。我让其他人尝试了代码,他们说它工作得很好,但对于我的GLEW设置有什么问题没有任何想法。

任何有想法的人,都会按我的方式抛弃。

我正在使用Windows 7,Code :: Blocks 12.11,并为GLEW 1.9.0下载了Ming32二进制文件。

我的链接器设置按以下顺序设置:

glew32 freeglut opengl32 glu32 WINMM GDI32

2 个答案:

答案 0 :(得分:3)

链接器设置有问题。你必须链接

  

<强> glew32s.lib

不仅 glew32.lib ,您还必须链接 glew32s.lib 。确保它必须位于链接器列表的顶部。

写代码时不要忘记定义

  

#define GLEW_STATIC

位于源文件的顶部。

答案 1 :(得分:1)

昨天我正在努力让一个GLEW示例工作 https://open.gl/introduction 我正在努力完成这些教程,并发现设置环境始终是最难的部分。我还使用Code:Blocks w / MinGW并希望进入OpenGL。 您将在下面找到自己构建GLEW和SFML的快速摘要,以及如何设置同时使用这两个项目的项目...

许多令人沮丧的事情对我来说是下载&#34; glew-1.13.0.zip&#34; (源ZIP,我必须自己建立GLEW) 将zip文件内容复制到C:\(此路径现在应该可以使用:C:\ glew-1.13.0 \ build \ cmake)

您必须使用GLEW来代码:具有MinGW的块

我得到了自己的CMake(google it)

将zip文件内容复制到C:\ (C:\ CMake3.2.0 \ bin)并运行cmake-gui.exe

在CMake中找到:

源代码在哪里: C:\ GLEW-1.13.0 \构建\ cmake的

在哪里构建二进制文件: C:\ GLEW-1.13.0 \ ownbuild

单击配置(在我的案例中选择您的编译器&#34; CodeBlocks - MinGW Makefiles&#34;) 单击生成(单独保留设置,只需按按钮)

现在在代码中打开C:\ glew-1.13.0 \ ownbuild \ glew.cbp并生成所有内容(快捷方式是CodeBlocks中的Ctrl + F9:D)

构建成功后,您的GLEW已经构建并为您的环境做好准备

///////// START - SFML SIDE TRIP 既然我是SFML的粉丝,并且abvoe mentioend教程支持它,你可能也想构建和使用sfml

sfml 2-3-2(google it)

  1. 从openal.software.informer.com/3.0 /
  2. 安装oal(oalinst.exe)
  3. 在CMake中:
  4. 源代码在哪里: C:/SFML-2.3.2 在哪里构建二进制文件: C:/SFML-2.3.2/build

    检查SFML_BUILD_EXAMPLES

    3。 代码块: -build&#34; all&#34;

    //////// END - SFML SIDE TRIP

    现在你想使用GLEW

    在代码中创建一个新的控制台应用程序:blocks (我称之为&#34; GLEW_sample&#34;)

    右键单击它并选择构建选项

    现在在CB中链接如下:

    LINKER SETTINGS: (我不想保持相对路径) *像往常一样添加所有SFML库 C:\ SFML-2.3.2 \建造\ LIB \ *从system32文件夹添加OPENGL.dll C:\ WINDOWS \ SYSTEM32 \ OPENGL32.DLL *添加GLEW库 C:\ GLEW-1.13.0 \ ownbuild \ lib中\

    搜寻导演: 编译: C:\ SFML-2.3.2 \包括 C:\ GLEW-1.13.0 \包括 链接器: C:\ SFML-2.3.2 \建造\ LIB C:\ GLEW-1.13.0 \ ownbuild \ BIN

    这是上述教程的源代码 https://open.gl/content/code/c2_color_triangle.txt 只需用它替换控制台应用程序中的代码,就可以了。

    现在您已经使用Cmake构建了GLEW和SFML,并创建了一个包含工作源代码的项目。编译并享受