codeblocks+mingw-w64+glew+glfw配置opengl环境
codeblocks吧
全部回复
仅看楼主
level 2
秋雨芙蕖 楼主
codeblocks+mingw-w64+glew+glfw配置opengl环境
上一贴中提到了,用glew源码和IDE:codeblocks及编译器mingw-w64编译出动态库dll供codeblocks使用。
http:/[睡觉]/tieba.baidu.com/p/4496921008
这里就要用到上一贴编译出来的.a和.dll文件了。
在配置opengl环境之前,提一下工程目录的管理问题。
建议是把项目所有需要用到的额外库放置在一个自定义文件夹里(不放在系统和编译器里的include和lib文件夹,因为他们的文件夹里已经有其他很多的dll文件了),这样容易定位出问题的库。在多个工程使用不同得到库时,容易区分。
我把项目所需要用的得而头文件和库文件都放置opengl-学习里的引用文件夹里,头文件放在include里,.a.dll放在lib文件夹里。
总的目录结构如下。
D:\CodeBlocks工程\OpenGL-学习\第一个三角形
D:\CodeBlocks工程\OpenGL-学习\引用
\OpenGL-学习
-------\第一个三角形 //这就是项目所在文件夹
---------------第一个三角形.c
bp

------- \引用 //所用用到的库都放在这里
---------------\include
-----------------------\GL
-------------------------------eglew.h
-------------------------------glew.h
-------------------------------glxew.h
-------------------------------wglew.h
-----------------------\GLFW
-------------------------------glfw3.h
-------------------------------glfw3native.h
-------------- \lib
-----------------------libopengl32.a
-----------------------libglew32dll.a
-----------------------glfw3dll.a
2016年04月21日 14点04分 1
level 2
秋雨芙蕖 楼主
IDE:codeblocks-16.01
编译器:mingw-w64
GLEW:glew-20160402.tgz
GLEW 2.0.0 release candidate, Core context, EGL support, no MX
GLFW:3.1.2
系统:win7-64位sp1。
一。编译和下载所需要的库,在上面已经有说明。
win系统只支持opengl到1.3版本,但opengl版本已经到4了,所以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里配置了。
2016年04月21日 14点04分 2
level 2
秋雨芙蕖 楼主
二、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里配置完了。设置完记得save projects。
2016年04月21日 14点04分 3
level 2
秋雨芙蕖 楼主
四、题外话
编译完之后的项目文件夹是这样子:
现在进入到bin/debug文件夹里。
点击第一个三角形.exe运行程序。这里的程序名是项目名,不是源代码文件名。
是不是出现了错误。
在把2个dll复制进去,在点击试试。
这样就正常了,使用dll动态链接库,dll文件是需要跟着编译好的exe文件走的。
2016年04月21日 14点04分 5
level 1
厉害厉害 解决困扰我好久的问题 赞一波
2018年01月14日 17点01分 6
1