配置GLEW+GLFW并使用Xcode写OpenGL应用

本文介绍在Mac中使用homebrew包管理安装glew和glfw,解决安装glew后的link警告问题。还详细说明了在Xcode中的配置步骤,包括添加路径、创建项目、设置搜索路径、导入framework等,最后给出测试代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

正题

首先在mac中要安装glew和glfw,这里我安装这两个工具使用的是homebrew包管理,这东西超级好用,安装命令很简单,大家可以去网络上找一下很多资料的。安装完homebrew之后,用以下两个命令安装glew和glfw:

brew install glew
brew install glfw

我自己在安装遇到的问题就是,在安装完glew之后,可能会有个警告就是告诉你glew还没有link,这时候你只要执行:

brew link glew

就可以完成link,警告也会消失。通过brew命令安装的软件包都会在/usr/local/Cellar文件夹下面,在这里你就可以找到glew和glfw3两个文件夹。

接下来就是在Xcode中的配置,在Xcode中找到Peference菜单项,这个一般在File菜单项左边的那个Xcode项目中,然后在里面找到Locations项,再点击Custom Paths,添加四项,依次为:

Name            Display Name    Path
glew_header        glew_header        /usr/local/Cellar/glew/2.1.0/include
glew_lib        glew_lib        /usr/local/Cellar/glew/2.1.0/lib
glfw_header        glfw_header        /usr/local/Cellar/glfw3/3.3/include
glfw_lib        glfw_lib        /usr/local/Cellar/glfw/3.3/lib

在这里需要修改的只有一项,就是要根据你自己安装的glew的版本和glfw3的版本修改2.0.0和3.2.1这两个版本号,其他的都是一样的。

然后创建一个新的Xcode项目(command line tool),语言选择C++。接着,在项目的Bulid Settings里面找到Header Search Paths和Library Search Paths两项,在Header Search Paths中加入

 

$(glew_header) $(glfw_header)

这两项,$()显示的就是刚才我们在locations中配置的文件路径,同理也在Library Search Paths中加入

$(glew_lib) $(glfw_lib)

这里debug和release都可以,只是对应于我们到底最后是上线发布还是线下调试

完成了上述过程之后,还有最后一步,就是导入framework。在项目的General中找到Linked Frameworks and Libraries,点击‘+’号,添加如下三个文件

OpenGL.framework    libGLEW.2.1.0.dylib    libglfw3.3.dylib
添加两个dylib文件的方法是,在你没有在framework中搜索到这两个文件时,点击add other,然后点击shift+command+G进入/usr/local文件夹,然后根据我们之前说的安装glew和glfw3的路径找到这两个文件夹,在这两个文件夹中找到这两个文件,当然这两个文件可能和我图中给出的文件名不同还是因为安装的版本号不同,这个需要注意一下

环境配置好之后我们可以测试一下,测试如下代码:

#include <iostream>
#include <GL/glew.h>
#include <GLFW/glfw3.h>
 
void Render(void)
{
    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();
}
 
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();
        exit(EXIT_FAILURE);
    }
    if(!glewInit())
    {
        return -1;
    }
    glfwMakeContextCurrent(win);
    while(!glfwWindowShouldClose(win)){
        Render();
        glfwSwapBuffers(win);
        glfwPollEvents();
    }
    glfwTerminate();
    exit(EXIT_SUCCESS);
    return 0;
}

成功:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值