zoukankan      html  css  js  c++  java
  • Mac 上的 GLFW 环境配置

    背景:GLFW

    一、下载和编译

    1. 从官网下载源代码包:http://www.glfw.org/download.html
      (我下载的是 github 仓库上的)

    2. 官方指南编译。总结如下:

    cd glfw-master
    cmake . 
    # 默认是编译静态库,如果要编译动态库则 cmake -DBUILD_SHARED_LIBS=ON .
    make
    make install
    

    最后会看到

    Install the project...
    -- Install configuration: ""
    -- Installing: /usr/local/include/GLFW
    -- Installing: /usr/local/include/GLFW/glfw3.h
    -- Installing: /usr/local/include/GLFW/glfw3native.h
    -- Installing: /usr/local/lib/cmake/glfw3/glfw3Config.cmake
    -- Installing: /usr/local/lib/cmake/glfw3/glfw3ConfigVersion.cmake
    -- Installing: /usr/local/lib/cmake/glfw3/glfw3Targets.cmake
    -- Installing: /usr/local/lib/cmake/glfw3/glfw3Targets-noconfig.cmake
    -- Installing: /usr/local/lib/pkgconfig/glfw3.pc
    -- Installing: /usr/local/lib/libglfw3.a
    

    二、配置 XCode 项目

    注:配置名字可以通过cmd+f搜索来定位

    1. 配置项目的Build Settings:

      • Other Linker Flags 为 -lgfw3

      • Library Search Paths 的 Debug 和 Release 分别加上/usr/local/lib/

      • Header Search Paths 加上 /usr/local/include/

    2. 添加库,打开项目的Build Phases

      在 Link Binary With Libraries 中添加:

      • Cocoa

      • OpenGL

      • IOKit

      • CoreVideo

    三、编译代码

    新建main.cpp:

    #include <GLFW/glfw3.h>
    
    int main(int argc, const char * argv[]) {
        GLFWwindow* win;
        if(!glfwInit()){
            return -1;
        }
        win = glfwCreateWindow(640, 480, "OpenGL Base Project", NULL, NULL);
        if(!win)
        {
            glfwTerminate();
            return -1;
        }
        glfwMakeContextCurrent(win);
        while(!glfwWindowShouldClose(win)){
            glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
            glClear(GL_COLOR_BUFFER_BIT);
            glBegin(GL_TRIANGLES);
            {
                glColor3f(1.0,0.0,0.0);
                glVertex2f(0, .5);
                glColor3f(0.0,1.0,0.0);
                glVertex2f(-.5,-.5);
                glColor3f(0.0, 0.0, 1.0);
                glVertex2f(.5, -.5);
            }
            glEnd();
            glfwSwapBuffers(win);
            glfwPollEvents();
        }
        glfwTerminate();
        return 0;
    }
    
    

    点击运行按钮。效果如下:

    OpenGL 教程推荐:https://learnopengl-cn.github.io

  • 相关阅读:
    【设计模式】- 责任链篇
    【工具】
    【日常摘要】- 生成随机的姓名或手机号篇
    排序算法的时空复杂度、稳定性分析
    链表插入排序、链表归并排序
    图的存储结构
    二叉平衡树的插入和删除操作
    二叉排序树的查找、插入和删除
    哈希表
    堆的插入、删除和建立操作,堆排序
  • 原文地址:https://www.cnblogs.com/flipped/p/9887103.html
Copyright © 2011-2022 走看看