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,搞定!

相關文章
相關標籤/搜索