工欲善其事,必先利其器。学习opengl必须要先搭建好开发环境,首先就从搭建环境开始。  

查阅了不少资料,发现glfw是一个不错的选择,跨平台,方便后续扩展,而且也支持原生的api。所以我们选用glfw库来配置opengl开发环境。

下载地址:http://www.glfw.org/download.html

我下载的是 glfw-3.1.1。系统为mac osx 10.10. 如果在win下可以直接下载lib库,vs中配置一下就可以了,在mac下需要自己下载源码编译安装。

1.在glfw-3.1.1/src下找到glfw_config.h.in文件。打开后修改编译参数:

修改为:

  

 1 // Define this to 1 if building GLFW for X11
 2 #cmakedefine _GLFW_X11
 3 // Define this to 1 if building GLFW for Win32
 4 #cmakedefine _GLFW_WIN32
 5 // Define this to 1 if building GLFW for Cocoa
 6 #cmakedefine _GLFW_COCOA 1
 7 // Define this to 1 if building GLFW for Wayland
 8 #cmakedefine _GLFW_WAYLAND
 9 // Define this to 1 if building GLFW for Mir
10 #cmakedefine _GLFW_MIR
11
12 // Define this to 1 if building GLFW for EGL
13 #cmakedefine _GLFW_EGL 1
14 // Define this to 1 if building GLFW for GLX
15 #cmakedefine _GLFW_GLX
16 // Define this to 1 if building GLFW for WGL
17 #cmakedefine _GLFW_WGL
18 // Define this to 1 if building GLFW for NSGL
19 #cmakedefine _GLFW_NSGL
20
21 // Define this to 1 if building as a shared library / dynamic library / DLL
22 #cmakedefine _GLFW_BUILD_DLL
23
24 // Define this to 1 if glfwSwapInterval should ignore DWM compositing status
25 #cmakedefine _GLFW_USE_DWM_SWAP_INTERVAL
26 // Define this to 1 to force use of high-performance GPU on Optimus systems
27 #cmakedefine _GLFW_USE_OPTIMUS_HPG
28
29 // Define this to 1 if the XInput X11 extension is available
30 #cmakedefine _GLFW_HAS_XINPUT
31 // Define this to 1 if the Xxf86vm X11 extension is available
32 #cmakedefine _GLFW_HAS_XF86VM
33 // Define this to 1 if glXGetProcAddress is available
34 #cmakedefine _GLFW_HAS_GLXGETPROCADDRESS
35 // Define this to 1 if glXGetProcAddressARB is available
36 #cmakedefine _GLFW_HAS_GLXGETPROCADDRESSARB
37 // Define this to 1 if glXGetProcAddressEXT is available
38 #cmakedefine _GLFW_HAS_GLXGETPROCADDRESSEXT
39 // Define this to 1 if dlopen is available
40 #cmakedefine _GLFW_HAS_DLOPEN
41
42 // Define this to 1 if glfwInit should change the current directory
43 #cmakedefine _GLFW_USE_CHDIR
44 // Define this to 1 if glfwCreateWindow should populate the menu bar
45 #cmakedefine _GLFW_USE_MENUBAR
46 // Define this to 1 if windows should use full resolution on Retina displays
47 #cmakedefine _GLFW_USE_RETINA
48
49 // Define this to 1 if using OpenGL as the client library
50 #cmakedefine _GLFW_USE_OPENGL
51 // Define this to 1 if using OpenGL ES 1.1 as the client library
52 #cmakedefine _GLFW_USE_GLESV1
53 // Define this to 1 if using OpenGL ES 2.0 as the client library
54 #cmakedefine _GLFW_USE_GLESV2 1

2.打开终端 cd 到 glfw-3.1.1 到目录,依次输入:

cmake .sudo make install

安装过程中可能需要输入密码,安装完毕后显示:

-- Installing: /usr/local/include/GLFW
-- Installing: /usr/local/include/GLFW/glfw3.h
-- Installing: /usr/local/include/GLFW/glfw3native.h
-- Installing: /usr/local/lib/cmake/glfw/glfwConfig.cmake
-- Installing: /usr/local/lib/cmake/glfw/glfwConfigVersion.cmake
-- Installing: /usr/local/lib/cmake/glfw/glfwTargets.cmake
-- Installing: /usr/local/lib/cmake/glfw/glfwTargets-noconfig.cmake
-- Installing: /usr/local/lib/pkgconfig/glfw3.pc
-- Installing: /usr/local/lib/libglfw3.a

3.打开xcode创建一个osx命令行项目,在Build Settings中设置好刚编译好的libglfw的安装目录/usr/local/lib/;然后在Build Phases中添加

  IOKit.framework,Cocoa.framework,OpenGL.framework,libglfw3.a

4.修改main.cpp为:

//
//  main.cpp
//  hello_glfw
//
//  Created by lukey.liu on 15/3/21.
//  Copyright (c) 2015年 cn.wing. All rights reserved.
//

#include <GLFW/glfw3.h>int main(int argc, const char * argv[]) {if (!glfwInit()) {return -1;}GLFWwindow* window = glfwCreateWindow(640, 480, "Hello opengl for GLFW", NULL, NULL);if (!window) {glfwTerminate();return -1;}glfwMakeContextCurrent(window);while (!glfwWindowShouldClose(window)) {glBegin(GL_TRIANGLES);glColor3f(1.0, 0.0, 0.0);    // RedglVertex3f(0.0, 1.0, 0.0);glColor3f(0.0, 1.0, 0.0);    // GreenglVertex3f(-1.0, -1.0, 0.0);glColor3f(0.0, 0.0, 1.0);    // BlueglVertex3f(1.0, -1.0, 0.0);glEnd();glfwSwapBuffers(window);glfwPollEvents();}glfwTerminate();return 0;
}

运行就能看到一个名为Hello opengl for GLFW的窗口,显示一个三角形

转载于:https://www.cnblogs.com/Slukey/p/4357060.html

opengl环境配置相关推荐

  1. 图解VC++ opengl环境配置和几个入门例子

    VC6下载 http://blog.csdn.net/bcbobo21cn/article/details/44200205 demo工程和glut库下载 http://pan.baidu.com/s ...

  2. OpenGL环境配置(超全整合版)

    网上搜罗各种资料,终于把openGL的环境配置好了,为了让后面的人省事,于是整合出了一个类似于"懒人包"的东西,非常好弄,按照下面的教程来就好了,什么都不缺 一.事前准备 一块主流 ...

  3. VS2010/VS2012/VS2015下openGL环境配置(转)

    按:按照下述博文,三个例子均成功. https://blog.csdn.net/so_geili/article/details/51685005 请仔细阅读每一个字. 为了学习<OpenGL超 ...

  4. OpenGL 环境配置教程-库文件汇总【glfw/glew/glad/glm/std_img】

    OpenGL的环境配置是最让初学者头疼的事情了,主要是一开始链接什么glfw.glad,不知道有什么用,什么链接库.包含目录很头大,有一步做错就可能一大堆报错. 本文对LearnOpenGL CN教程 ...

  5. Mac版OpenGL环境配置

    前段时间图形学要求在电脑上配置OpenGL环境,但是老师发的资料都是Windows的.CSDN上看了无数个帖子也没配好,最后是看朋友推的一个B站视频配好的. 以下是原链接:[Mac搭建OpenGL开发 ...

  6. DEV C++的OPENGL环境配置

    DEV C++作为一个轻量级的开发工具,相信会有不少朋友会选用它.但是利用它学习OPENGL,摆在第一位置的就是OPENGL函数库的配置. 提到配置OPENGL的环境,可谓让人头大,查阅了无数的网站和 ...

  7. vs2010中opengl环境配置

    下面将对VS2010中配置OpenGL进行简单介绍. 学习OpenGL前的准备工作 第一步,选择一个编译环境 现在Windows系统的主流编译环境有Visual Studio,Broland C++  ...

  8. C# OpenGL 环境配置和入门程序

    效果: 环境:Win10 + vs2015: 需要2个东西: 下载tao库: http://www.taoframework.com 直接安装: FreeGlut.dll  FreeGlut.dll ...

  9. OpenGL环境配置Win7-64位+freeglut+glew+VS2012

    虽然用的是64位的操作系统,但是写的Opengl+VS2012的程序还是32位的,所以下面的配置过程是针对64位系统的32位程序开发的. 1,文件准备:在sourceforge上下载freeglut和 ...

最新文章

  1. 机器学习(12)欠拟合过拟合、模型分析与正则化
  2. awk 抓取文件子集
  3. python在线翻译代码_Python 20行简单实现有道在线翻译的详解
  4. CentOS 7.0安装Nvidia驱动
  5. HTML的--iframe
  6. 用Emacs编写mybatis
  7. linux 命令 空格转义,在Linux中,如何转义SCP复制路径中的空格?
  8. biodist r语言_R语言 Biostrings包 pairwiseAlignment()函数中文帮助文档(中英文对照)
  9. 自底向上带你逆向解析hibernate联合主键
  10. 如果从零开始开发一款APP,需要做哪些准备
  11. 《深入浅出设计模式》小结
  12. 判断访问浏览器的类型
  13. python计算平均数、众数、中位数、极差、方差、标准差……
  14. Unity Navigation--自动寻路、分离路面导航、分层烘培、动态障碍
  15. 信号的平均功率与均方值
  16. request请求参数中文乱码问题
  17. svn查看ip linux,查看svn服务器的ip地址
  18. UVA 10635 Prince and Princess
  19. 四轴自适应控制算法的一些尝试开源我的山猫飞控和梯度在线辨识自适应等算法
  20. 疫情对广州房价的影响

热门文章

  1. JS:a标签传值到js,并动态响应
  2. Bit-Z收不到邮箱验证码怎么办(如何添加Bit-Z至邮箱白名单?)
  3. 【译】Getting Started With Ethereum and Building a Basic Dapp — Part 2
  4. 反卷积在神经网络可视化上的成功应用
  5. Android View坐标系
  6. sir跟seir模型有啥区别_H3C B5mini拆机,看一下跟B5有啥区别
  7. 软件获取手机的ime权限_【手机谷歌软件下载】【安卓+iOS】老湿机最爱~免翻,获取各种“特殊”资源!...
  8. JZOJ 5275. 水管
  9. docker mysql 不稳定_docker 的 mysql 容器运行一段时间后崩溃
  10. 服务器部署的参数文档,服务器的基本配置参数