OpenGL-vs2012-glfw-glew 测试环境搭建

来源:互联网 发布:mean it 编辑:程序博客网 时间:2024/05/23 02:00


---前言,可跳过

之前学了一下OpenGL基本懂得OpenGL的世界观了,但是因为少实践很多东西还是不能弄得恨透侧,所以打算重新再搞一遍,所有一切东西都是自己去搞,而只是有什么需要才查书和看实例.然后就搭建工程就搞了好几天,在这里跟大家分享一下搭建流程和一些注意事项.


--开始正题.:

首先我们要知道三个库glfw,glew,glm. 

glfw是辅助创建openGL窗口的开源库.所以在后面配置工程的时候你会发现我们根本就不需要用到MFC窗口框架的,只需要console工程即可

glew是暴露openGL的通用API的开源库,

glm是openGL开发中常用的数学库,主要是一些矩阵变化. 但是该库里面的源文件都是以.hpp这种不用编译的后缀形式存在,所以只要include就行,在此环境配置中不用理会.


(一,下载)

下载glfw地址: http://www.glfw.org/ ,

      (建议直接下载binaries吧,已经帮你build好了,免得自己又去build一次,但是要注意下载下来的是release版,如果你觉得release版满足不了你的调试要求的话,你就只能去下载源代码下来自己编译啦.源代码编译时要用到CMake来生成VS工程,会增加一点麻烦度,所以如果急着跑通第一遍的话可以先玩玩release版咯)

-------


下载glew地址http://glew.sourceforge.net/

     (同上,先下载个Binaries来玩玩吧.)



(二.新建工程)

新建一个win32的console程序,后续配置不用管,直接finish就行了..(是的,就一个console程序就行,窗口什么的不用担心,这就是glfw的作用):



(三.把glfw,glew的库文件放到工程下)

在工程目录底下创建include目录和lib目录(其实这一步不是必要的,只是为了以后便于转移而不会把工程文件都拷下来在另外一台机却编译不过去什么的.)



解压下载回来的glew和glfw库压缩包:



glew:

把目录 \glew-1.13.0\lib\Release\Win32 下的glew32.lib拷贝到工程目录下的lib文件夹(刚才创建那个)中

把目录 \glew-1.13.0\include 下的GL文件夹一整个拷到工程目录下的include文件夹(刚才创建那个)中


glfw:

把目录 \glfw-3.1.1.bin.WIN32\lib-vc2012 下的glfw3.lib拷贝打工程目录下的lib文件夹

把目录 \glfw-3.1.1.bin.WIN32\include 下的GLFW文件夹一整个拷到工程目录下的include文件夹





工程配置中添加刚才创建的include目录:



工程配置中添加刚才创建的lib目录:



工程配置中配置要加载的lib文件: glfw3.lib,glew32.lib,opengl32.lib



到此基本配置完成.可以粘贴一下下面这块代码进行编译一下.通过了就说明没有问题了.

#include "stdafx.h"#include <stdio.h>#include <stdlib.h>#include <GL/glew.h>#include <GLFW/glfw3.h>GLFWwindow* window;int main( void ){if(!glfwInit())return -1;glfwWindowHint(GLFW_SAMPLES,4);glfwWindowHint(GLFW_RESIZABLE,GL_FALSE);glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR,3);glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR,3);glfwWindowHint(GLFW_OPENGL_PROFILE,GLFW_OPENGL_CORE_PROFILE);window = glfwCreateWindow(1024,768,"Test OpenGL config",NULL,NULL);if (!window){glfwTerminate();return -1;}glfwMakeContextCurrent(window);if(glewInit() != GLEW_OK)return -1;do {<span style="white-space:pre"></span>printf("Test~~~~");}while(glfwGetKey(window,GLFW_KEY_ESCAPE) != GLFW_PRESS && glfwWindowShouldClose(window) == 0);glfwTerminate();return 0;}


(四,错误原因介绍)

补充一下相关编译过程的错误:

编译过程出的错不外乎两种:

一种是找不到头文件或者是库文件(如下),这种比较低级,大概原因是因为你的项目没有按上面介绍的去指定引用lib和include的目录我就不解释了:




另外一种是glfw,glew库文件链接过程错误,如下图:


这种情况特殊提一下出现问题得可能原因:

1.确保你的工程和glew、glfw的lib文件都是同样win32或者是win64的配置。 (如果win64的所有可能原因都查了还是不行,我建议你换成win32试试)

2.下载下来的glew、glfw都是Release版lib,要确保你的工程也是Release模式去编译

3.最好把系统盘里面的C:\Windows\System32 路径下的glew、glfw库文件都删掉吧,之前你可能看别的教程的时候把库文件放里面去了,可能会导致工程引用了里面lib

4.最好把VS的安装目录下D:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\lib 的glew/glfw库文件也清了,同理.


要注意,链接错误不只是glfw和glew的库文件,还有可能是下面的情况:


这种情况主要是因为你没有引用opengl32.lib的原因. 

2 1
原创粉丝点击