这学期学校开了OpenGL的课,我们的实验课都是在linux上进行的,使用的库都是GLUT GL。 当我把代码放在我mac系统里面跑的时候 ,出现了无数的deprecated warning。于是我去谷歌了一下,发现10.9版本的系统之后 苹果就强烈不建议继续使用GLUT库了。我看了一下GLUT库 也已经快15年不更新了,于是我需要去找一个代替的库,这个库就是GLFW。
按照网上的教程,我自己试着安装了一下,但是发现一个很严重的问题:我在终端进行编译的时候,始终提示我找不到glfw3.h 和glfw3的链接库。 当然我可以使用
-I 指定头文件具体位置
-L 指定链接库的具体位置</span>
来解决这个问题,但关键是 ,我在/usr/local/include 和/usr/local/lib里都找到了我已经安装好的头文件和库文件,但是为什么就是找不到呢?
于是乎我需要看一下 gcc 的头文件搜索路径 在终端输入 cpp -v 可以看到:(关于searching path可以看这篇和这篇)
ignoring duplicate directory "/usr/include"
as it is a non-system directory that duplicates a system directory
#include "..." search starts here:
#include <...> search starts here:
/usr/local/include
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/6.0/include
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include
/usr/include
/System/Library/Frameworks (framework directory)
/Library/Frameworks (framework directory)
End of search list.
是啊,我的/usr/local里面确实有我需要的lib和.h文件啊,为什么gcc却提示找不到呢?
我试了无数办法之后 最后找到了原因:我没有装command line tools。。。。。。。。
苹果在10.9以后好像把Xcode和clt分开了,gcc什么的我都能用,但是command line tools确实没有装。最蛋疼的一点就是 现在去Xcode-preference-download里面是看不见clt的下载选项的,这意味着你无法知道你自己装了clt没。
command line tools 安装方法: 在终端输入 xcode-select --install (更多相关指令 可以 man xode-select或者参照这里)
下面介绍一种傻瓜式的安装过程:
GLFW在MacOS上的安装:
1.确保你安装了command line tooll。(this is very important)
2.安装Homebrew (关于homebrew可以查看这里)
3.利用homebrew 安装 cmake 和 glfw3
到这里安装全部结束,可以在终端直接编译OpenGL啦!
编译方法:
cc -o myprog helloglfw.c -lglfw3 -framework Cocoa -framework OpenGL -framework IOKit -framework CoreVideo
有任何问题 欢迎交流!