XCODE 6.1.1 配置GLFW

    最近在学习opengl的相关知识。第一件事就是配环境(好烦躁)。了解了一下os x下的OpenGL开源库,主要有几个:GLUT,freeglut,GLFW等。关于其详细的介绍能够参考opengl网站(https://www.opengl.org/wiki/Related_toolkits_and_APIs)。因为GLUT太老了,os x 10.9以后已经不推荐使用了。并且freeglut听说bug有点多,在网上查了资料后仍是选择了glfw这个开源库。xcode

    因为mac os系统继承了glut,xcode使用glut仍是很方便的。可是glfw使用起来就须要咱们本身配置一下环境了。原本想用百度搜一下配置方法来着,结果然是给度娘和这帮博主们跪了。翻了几页找到了几个,结果还都是互相抄袭。抄袭也就算了,起码你写的明白点呀。无奈之下仍是看看墙外的世界吧。结果很easy的就找到了几个安装配置方法。这里列举出来.ide

    1.http://handonch.in/2014/08/05/how-to-use-glfw-in-xcode/    是一个比较详细的教程。oop

    2.http://www.youtube.com/watch?v=GHdorvcZRMg    youtube 上一个安装视频。学习

本人是根据第一个教程配置成功的。测试

首先下载glfw的源代码(官网:http://www.glfw.org/)。在首页就又下载连接。根据不一样的系统选择不一样的下载包。网站

下载下源代码以后,解压缩,解压到任何目录均可以,无所谓。ui

打开系统的terminal窗口。进入到源代码的根目录。以下图。spa

在根目录下执行命令:cmake . (千万别忘了这个.)安装cmake的放大能够度娘3d

执行完cmake后执行命令:make(这个没有.)code

接下来执行命令:make install 

而后就会开始安装glfw。安装成功后会提示successful。

  接下来的工做就是在xcode中配置glfw了。首先打开xcode,点击"create a new xcode project" 新建一个console工程(这里建什么工程看你本身需求,我只是作一个演示)

以后键入工程名称,并选择语言,这里我选择了C语言。

创建工程后,以下:

先忽略下面的IOKit.framework等(一会你的就会有了)

点击工程文件夹,选择右边的build phases,在Link Binary with Libraries中选择IOKit.framework,Cocoa.framework,OPENGL.framework,CoreVideo.frame,libglfw3.a,添加进去。以下图:

其中除了libglfw3.a都容易找到。libglfw3.a 在下面的列表中找不到。须要点击add other 。在/usr/local/lib中选择libglfw3.a。添加进去就能够了。

  这一步以后,点击Build Setting,在搜索框搜索"header search paths",在header search paths中,添加"/usr/local/include/",而且设置为recursive,以下图:

下一步搜索"library search paths",在"library search paths",添加"/usr/local/lib/",而且设置为recursive.

这样,便配置好了glfw。

下面经过测试示例,来测试一个glfw是否安装成功。

#include <GLFW/glfw3.h>

int main(void)
{
    GLFWwindow* window;
    
    /* Initialize the library */
    if (!glfwInit())
        return -1;
    
    /* Create a windowed mode window and its OpenGL context */
    window = glfwCreateWindow(480, 320, "Hello World", NULL, NULL);
    if (!window)
    {
        glfwTerminate();
        return -1;
    }
    
    /* Make the window's context current */
    glfwMakeContextCurrent(window);
    
    /* Loop until the user closes the window */
    while (!glfwWindowShouldClose(window))
    {
        /* Draw a triangle */
        glBegin(GL_TRIANGLES);
        
        glColor3f(1.0, 0.0, 0.0);    // Red
        glVertex3f(0.0, 1.0, 0.0);
        
        glColor3f(0.0, 1.0, 0.0);    // Green
        glVertex3f(-1.0, -1.0, 0.0);
        
        glColor3f(0.0, 0.0, 1.0);    // Blue
        glVertex3f(1.0, -1.0, 0.0);
        
        glEnd();
        
        /* Swap front and back buffers */
        glfwSwapBuffers(window);
        
        /* Poll for and process events */
        glfwPollEvents();
    }
    
    glfwTerminate();
    return 0;
}

运行该程序,能够获得运行结果以下:

ok,搞定!

相关文章
相关标签/搜索