Mac OpenGL 环境配置(Xcode)
3D图形编程工具课要用到OpenGL,找了好多教程,有的因为Xcode版本更新高于老师用的了,也遇到了奇奇怪怪的bug。自己总结一份经验吧,以免自己后面配置的时候忘了。
- 安装Homebrew(这真的是最方便的配置方法了)
安装教程指路https://blog.csdn.net/y201314an/article/details/84179536
一些tips指路https://blog.csdn.net/delphiwcdj/article/details/19679891
官网指路(内含安装指令)https://brew.sh (如果你看到我的笔记已经时间比较久远,建议按照官网最新的安装指令安装)。
- 安装OpenGL需要的包
我们老师要求使用的包是GLEW、glfw和freeglut。我也只安装了这几个包。
分别在终端输入(一个安装完再安装另一个)
brew install glew
brew install glfw
brew install freeglut
可以测试一下是否安装完成
brew list
列表里面有这三个包就可以了(如下图)
系统会默认把这三个包装在/usr/local/Cellar里面,同时也可以在/usr/local/lib里面找到
- 配置Xcode
我们老师的示范程序引用进的包是<GL/glut.h>,这个包在Xcode 10.8版本之后就弃用了,现在改成了似乎是<GLUT/glut.h>。如果引用了现在的包在使用原包里面的函数,例如glutInit,就会有警告,让人很难受。所以我还是想办法用了老师示范的包。
-
创建Xcode程序,选择macOS->Command Line Tool->按照步骤新建(语言我们课程要求C)
-
最左侧栏选中项目蓝标->Deployment Info选择10.8 (如果不需要用<GL/glut.h>的包,可以忽略这一步。
-
Framework and Libraries->点击+ -> 搜索框里输入OpenGL,选择OpenGL包->add
-
Framework and Libraries相同方法添加GLUT包。
-
Framework and Libraries ->点击+ -> Add Files -> 快捷键(Command+Shift+G)跳转系统库->输入/usr/local/lib -> Go ->选择libGLEW(任何版本都可以)
-
相同方法先后再添加libglfw、libglut包。
包添加完后效果如图。
-
相同界面,选择Build Settings -> All -> Search Paths -> Always Search User Paths选择Yes -> Header Search Paths 加入/usr/local/include -> Library Search Paths 改成/usr/local/lib
- 配置完成!
可以输入代码测试:
#include <GL/glut.h>
void mydisplay(){
glClear(GL_COLOR_BUFFER_BIT);
glBegin(GL_POLYGON);
glVertex2f(-0.5, -0.5);
glVertex2f(-0.5, 0.5);
glVertex2f(0.5, 0.5);
glVertex2f(0.5, -0.5);
glEnd();
glFlush();
}
int main(int argc, const char * argv[]) {
glutInit(&argc, argv);
glutCreateWindow("simple");
glutDisplayFunc(mydisplay);
glutMainLoop();
}
能够运行出一个白色小正方形就可以啦!
- 可能遇到的问题
- 注意以上的输入内容,usr不是user,以及路径不要漏掉“/”
- 如果像我一样遇到下图的运行bug(显示线程错误)
就把前面添加的Framework and Library那三个后加入的包删掉(选中包,点击‘-’),删除后呈现下图样子
但由于左边栏Frameworks那里那三个包仍然存在,所以不会影响运行结果但可以避免这个线程错误。
我也不知道为什么,知道的小伙伴可以告诉我,或者有更好的解决办法欢迎留言。 - 暂时没有其他问题,再遇到的话再补充!也欢迎大家在留言区补充。
最后感谢我安装过程中找过的各个经验贴!!!(看过太多不记得具体是哪几个了