IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> Mac 搭建OpenGL开发环境(xcode+ glew + glfw) -> 正文阅读

[移动开发]Mac 搭建OpenGL开发环境(xcode+ glew + glfw)

Mac 搭建OpenGL开发环境(xcode+ glew + glfw)

开始

第一步

在终端中通过brew来安装:

brew install glew
brew install glfw3

通常第一个会很顺利安装成功,第二个如果安装失败,更新homebrew

brew update

如果还是失败,可以重新安装homebrew的核心库

cd /usr/local/Homebrew/Library/Taps/homebrew/
rm -rf homebrew-core
git clone https://github.com/Homebrew/homebrew-core.git

然后再更新下,再安装

brew update
brew install glew
brew install glfw3

安装完成后,可以在本地的*/usr/local/Cellar文件夹下看到glew * 和glfw
在这里插入图片描述

第二步

打开xcode - preferences - locations 选择custom tap 添加上glfw和glew的头文件和库的路径
在这里插入图片描述
或者详细一些,也可以
在这里插入图片描述

第三步

新建OpenGL 测试项目,macOS 命令行项目,在项目中配置上glew和glfw的路径,两种方式:

第一种:

直接在Header Search Paths里面配置上这四项OK了,Library Search Paths不用配置,等编译成功后会自动添加
在这里插入图片描述
等配置完成后编译一次成功后,library search paths里面会自动变为这样:
在这里插入图片描述
当然也可以手动配置。

第二种

在这里插入图片描述
双击点开,一项一项的添加即可,大图如下

在这里插入图片描述
在这里插入图片描述
完成后外边看到的就是这样的
在这里插入图片描述
以上两种配置效果是一样的。继续后面的操作:
接下来链接动态库
在target - general 中配置动态库
在这里插入图片描述
搜不到 glew/glfw动态库,可以在other中 添加,点击后,command+shift+G ,/usr/local/celler 中选择即可
在这里插入图片描述
添加完成后即可开始写个demo测试下啦

第四步

验证

#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.14 以后吧,加了此项,也有其他方式可以处理,最方便的还是这个
运行效果:
在这里插入图片描述
或者用官方的小示例:

#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(640, 480, "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))
    {
        /* Render here */
        glClear(GL_COLOR_BUFFER_BIT);

        /* Swap front and back buffers */
        glfwSwapBuffers(window);

        /* Poll for and process events */
        glfwPollEvents();
    }

    glfwTerminate();
    return 0;
}

效果就是个小的黑窗口,总之代表着可以跑起来啦。
在这里插入图片描述

总结

肯定有采坑,上边的步骤是踩完坑后的步骤,直接可以用,主要的坑

Undefined symbols for architecture x86_64:
  "_glClear", referenced from:
      _main in main.cpp.o
  "_glClearColor", referenced from:
      _main in main.cpp.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[2]: *** [GraphicsPractice] Error 1
make[1]: *** [CMakeFiles/GraphicsPractice.dir/all] Error 2
make: *** [all] Error 2

链接动态库的问题。
在这里插入图片描述

和动态库权限的问题,打上上面的勾就可以了,不用

codesign -f -s "Mac Developer: YOURDEVELOPEREMAIL" /usr/local/opt/*/lib/*.dylib

Code has to be at least ad-hoc signed问题处理参考
build setting 配置参考
GLFW 官方示例
OpenGL大神(cherno)的教程,收费哦
最好的OpenGL 教程之一

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-10-12 23:34:18  更:2021-10-12 23:34:59 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 22:52:32-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码