• 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这个开源库。

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

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

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

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

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

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

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

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

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

    接下来执行命令: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,搞定!

  • 相关阅读:
    LeetCode OJ
    LeetCode OJ
    LeetCode OJ
    linux tips
    vim more
    vim basic
    cut
    paste
    uniq
    Linux的用户
  • 原文地址:https://www.cnblogs.com/suneony/p/4352314.html
Copyright © 2020-2023  润新知