我想进入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
答案 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)
源代码在哪里: C:/SFML-2.3.2 在哪里构建二进制文件: C:/SFML-2.3.2/build
检查SFML_BUILD_EXAMPLES
3。 代码块: -build&#34; all&#34;
//////// END - SFML SIDE TRIP
在代码中创建一个新的控制台应用程序: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,并创建了一个包含工作源代码的项目。编译并享受