芙蕖吧 关注:497贴子:2,676
  • 3回复贴,共1

codeblocks+glew+glfw配置opengl环境

只看楼主收藏回复

codeblocks+glew+glfw配置opengl环境
上一贴中提到了,用glew源码和IDE:codeblocks及编译器mingw-w64编译出动态库dll供codeblocks使用。
http://tieba.baidu.com/p/4493663232
这里就要用到上一贴编译出来的.a和.dll文件了。
在配置opengl环境之前,提一下工程目录的管理问题。
建议是把项目所有需要用到的额外库放置在一个自定义文件夹里(不放在系统和编译器里的include和lib文件夹,因为他们的文件夹里已经有其他很多的dll文件了),这样容易定位出问题的库。在多个工程使用不同得到库时,容易区分。

我把项目所需要用的得而头文件和库文件都放置opengl-学习里的引用文件夹里,头文件放在include里,.a.dll放在lib文件夹里。
总的目录结构如下。
D:\CodeBlocks工程\OpenGL-学习\第一个三角形
D:\CodeBlocks工程\OpenGL-学习\引用
\OpenGL-学习
-------\第一个三角形 //这就是项目所在文件夹
---------------第一个三角形.cbp
------- \引用 //所用用到的库都放在这里
---------------\include
-----------------------\GL
-------------------------------eglew.h
-------------------------------glew.h
-------------------------------glxew.h
-------------------------------wglew.h
-----------------------\GLFW
-------------------------------glfw3.h
-------------------------------glfw3native.h
-------------- \lib
-----------------------libopengl32.a
-----------------------libglew32dll.a
-----------------------glfw3dll.a


IP属地:北京1楼2016-04-21 20:13回复
    一。编译和下载所需要的库,在上面已经有说明。
    win系统只支持opengl到1.3版本,但opengl版本已经到四了,所以win系统下就有了glew。
    opengl的绘制和win窗口创建是严格分开的,opengl里并没有窗口创建函数,所以有了glfw,用于窗口管理。
    glew头文件在下载的源码文件夹里。
    把他复制到对应的文件夹里。
    在把我们编译出来的2个库文件复制到lib文件夹里。

    glfw则下载64位的已编译好的库文件glfw-3.1.2.bin.WIN64.zip。
    下载地址:http://http://www.glfw.org/download.html

    我是64位系统所以下64位,但64位前人使用过后说有很多诡异的错误,所以这里建议使用32位的。
    也把glfw压缩包里的头文件,复制到对应的文件夹里。
    再把lib-mingw-w64里的glfw3dll.a和glfw3.dll复制到lib里。而libglfw3.a是静态编译库,经测试不能用,所以glfw选用动态库链接。

    到这里库都下载复制完,放置在便于管理的位置,接下来需要到codeblocks里配置了。




    IP属地:北京2楼2016-04-21 20:45
    回复
      二、codeblocks配置
      1、新建“第一个三角形”项目。

      2、设置search directories。(settings-compiler settings)

      3、链接库文件,注意库的上下顺序,opengl32在最上边,glfw在最下边。源代码中使用包含也要遵循这一顺序。在把对应的2个dll文件复制到项目目录下,库的配置就完了。
      当需要把编译好的exe移到其他地方运行,记得也需要把2个dll复制过去,与exe文件放置在同一个文件夹下。
      //因为使用glew动态链接库,则需定义GLEW_BUILD。
      //而定义GLEW_STATIC,则表示使用静态链接库,但经测试无论是下载的,还是自己编译的,
      //使用时都遇到同样的错误而无法使用。
      // GLEW
      #define GLEW_BUILD
      #include <GL/glew.h>
      // GLFW
      #include <GLFW/glfw3.h>


      好了,库到此在codeblocks里配置完了。


      IP属地:北京3楼2016-04-21 21:11
      回复
        四、题外话
        编译完之后的项目文件夹是这样子:

        现在进入到bin/debug文件夹里。

        点击第一个三角形.exe运行程序。这里的程序名是项目名,不是源代码文件名。
        是不是出现了错误。

        在把2个dll复制进去,在点击试试。

        这样就正常了,使用dll动态链接库,dll文件是需要跟着编译好的exe文件走的。


        IP属地:北京5楼2016-04-21 21:48
        回复